Overview

Class Central Tips

To really understand what is special about Bitcoin, we need to understand how it works at a technical level. We’ll address the important questions about Bitcoin, such as:

How does Bitcoin work? What makes Bitcoin different? How secure are your Bitcoins? How anonymous are Bitcoin users? What determines the price of Bitcoins? Can cryptocurrencies be regulated? What might the future hold?

After this course, you’ll know everything you need to be able to separate fact from fiction when reading claims about Bitcoin and other cryptocurrencies. You’ll have the conceptual foundations you need to engineer secure software that interacts with the Bitcoin network. And you’ll be able to integrate ideas from Bitcoin in your own projects.

Course Lecturers:
Arvind Narayanan, Princeton University

All the features of this course are available for free. It does not offer a certificate upon completion.

Syllabus

Introduction to Crypto and Cryptocurrencies
-Learn about cryptographic building blocks ("primitives") and reason about their security. Work through how these primitives can be used to construct simple cryptocurrencies.

How Bitcoin Achieves Decentralization
-Learn Bitcoin's consensus mechanism and reason about its security. Appreciate how security comes from a combination of technical methods and clever incentive engineering.

Mechanics of Bitcoin
-Learn how the individual components of the Bitcoin protocol make the whole system tick: transactions, script, blocks, and the peer-to-peer network.

How to Store and Use Bitcoins
-This week we'll explore how using Bitcoins works in practice: different ways of storing Bitcoin keys, security measures, and various types of services that allow you to trade and transact with bitcoins.

Bitcoin Mining
-We already know that Bitcoin relies crucially on mining. But who are the miners? How did they get into this? How do they operate? What's the business model like for miners? What impact do they have on the environment?

Bitcoin and Anonymity
-Is Bitcoin anonymous? What does that statement even mean—can we define it rigorously? We'll learn about the various ways to improve Bitcoin's anonymity and privacy and learn about Bitcoin's role in Silk Road and other hidden marketplaces.

Community, Politics, and Regulation
-We'll look at all the ways that the world of Bitcoin and cryptocurrency technology touches the world of people. We'll discuss the community, politics within Bitcoin and the way that Bitcoin interacts with politics, and law enforcement and regulation issues.

Alternative Mining Puzzles
-Not everyone is happy about how Bitcoin mining works: its energy consumption and the fact that it requires specialized hardware are major sticking points. This week we'll look at how mining can be re-designed in alternative cryptocurrencies.

Bitcoin as a Platform
-One of the most exciting things about Bitcoin technology is its potential to support applications other than currency. We'll study several of these and study the properties of Bitcoin that makes this possible.

Altcoins and the Cryptocurrency Ecosystem
-Hundreds of altcoins, or alternative cryptocurrencies, have been started, either to fix Bitcoin's perceived flaws or to pursue different goals and properties. We'll look at everything that goes into an altcoin and how they interact with Bitcoin.

The Future of Bitcoin?
-The use of Bitcoin technology for decentralizing property, markets, and so on has been hailed as a recipe for economic and political disruption. We'll look at the technological underpinnings of these proposals and the potential impact on society.

4.3Based on
17 reviews

This course contains scientific errors, and the cryptocurrency sector is suffering very much from such sloppy research and a poor understanding of certain aspects of computation which will become increasingly relevant in the future.

In the section, "Energy consumption and ecology", the authors claim that since SHA-256 is a non-reversible computation, Bitcoin mining must consume a minimum amount of energy due to Landauer's limit. This is false.

To give you some background, Landauer's principle states that in order to delete information by replacing that information wit…

This course contains scientific errors, and the cryptocurrency sector is suffering very much from such sloppy research and a poor understanding of certain aspects of computation which will become increasingly relevant in the future.

In the section, "Energy consumption and ecology", the authors claim that since SHA-256 is a non-reversible computation, Bitcoin mining must consume a minimum amount of energy due to Landauer's limit. This is false.

To give you some background, Landauer's principle states that in order to delete information by replacing that information with a whole bunch of 0's, one must spend at least k*T*ln(2) energy per bit deleted and replaced with a 0; here k=1.38*10^(-23) Joules/Kelvin is Boltzmann's constant, T is the temperature, and ln denotes the natural logarithm (ln(2)=0.69...). Landauer's principle should be thought of as a consequence of the second law of thermodynamics since any violation of Landauer's principle would cause a decrease in entropy. Reversible computing is the type of computing where one does not delete any information or where one deletes as little information as possible. Since reversible computing does not delete any information, reversible computation is not subject to Landauer's limit. While reversible computing is potentially many times more energy efficient than conventional computation, today there are no reversible computers out on the free market.

Today, there is much hype about quantum computation, but people do not seem to understand that reversible computation is much more feasible than quantum computation and that we should expect to see reversible computers outperform irreversible computers long before we get our money's worth from all the quantum computation research (by some estimates, we are quite close to the day when reversible computers start to outperform conventional computers). There are a few reasons we have not seen reversible computation get much attention by much of anyone. In the past the efficiency of conventional computation was so far away from Landauer's limit that Landauer's limit was not relevant. The performance gains in computation were achieved simply by shrinking the size of the components in an integrated circuit. Today, these reasons are no longer relevant since research indicates that reversible computers with energy efficiencies below Landauer's limit are possible http://www.imm.org/Reports/rep046.pdf.

Now, reversible computers (as soon as people start building them) will be capable of doing any computation that can be done by conventional computers. As you might expect, it typically takes more steps to perform a computation reversibly than it does to perform the same computation using a conventional computer. However, through computing and uncomputing using an optimal strategy to Bennett's pebble game, any computation that can be performed with space S and time T can also be performed reversibly using space O(S*log(T/S)) and time O(T*(T/S)^epsilon). This means that the computational overhead incurred from reversibility is quite reasonable. This computational overhead can be further reduced by incorporating a small amount of irreversibility into the computation. Landauer's limit is irrelevant for producing any theoretical limits to the energy consumption for performing any computation.

For Bitcoin mining, one however does not need to use Bennett's pebble game in order to conclude that Bitcoin mining can be done on a reversible computer at an efficiency rate well below Landauer's limit per hash. Two of the main security requirements of cryptographic hash functions are collision resistance and second pre-image resistance, and both of these security requirements are weak versions of reversibility, so cryptographic hash functions by their very nature should be at least partially reversible. If you look at the inner workings of SHA-256, you will find that SHA-256 uses much modular addition (which is a quite reversible operation since there are reversible ripple carry adders that can perform this operation) along with other components which can be constructed with very few reversible gates and which leave behind none of the garbage information that often comes from reversible computation.

Even without regarding anything that I had just said about Bennett's pebble game and SHA-256, one should still conclude that all cryptocurrencies can be effectively mined using a reversible computer simply by uncomputing all of the garbage data after every hash attempt. In case I have not convinced you, here is a general template for a computer program for mining a cryptocurrency in the completely reversible programming language Janus.

The goal of the following POW problem is to find an input i where w=12321 after we perform the assignments

w=i; x=((i+214)^(i+142211))+(w&1231); w-=(x&13321).

procedure proofofwork(int i,int w,int x)

w+=i

x^=((i+214)^(i+142211))+(w&1231)

w-=(x&13321)

procedure main()

int i

int w

int x

call proofofwork(i,w,x)

from i=0 do

uncall proofofwork(i,w,x)

i+=1

call proofofwork(i,w,x)

until (w=12321)

uncall proofofwork(i,w,x)

The output of this program for solving a POW problem (and this output includes all possible garbage information) is

i = 20513

w = 0

x = 0

and i=20513 is a solution to this POW problem.

While this scientific error may seem as a minor issue, for heat production and energy use issues, we should all expect for nearly reversible computers to replace the conventional computers that we have today. Furthermore, cryptocurrency mining problems can be used to stimulate the initial development of the energy efficient reversible computer. Unfortunately, the cryptocurrency community does not seem to care that their mining efforts have only wasted resources and polluted our planet without producing any technology or scientific advancement to show for it.

by
Yudhanjayacompleted this course, spending 4 hours a week on it and found the course difficulty to be medium.

Thorough in content and very well structured, this course takes you from the basics of cryptography to a sweeping overview of how Bitcoin and cyptocurrencies work, their ecosystems, impact, political effects, ramifications, potential and more.

I personally found it an excellent balance of theory and code. Only once did I need to do any research outside the course itself to fully understand something - and that was for merkel trees. While some of the lecturers do not look like they're used to presenting in front of a camera, their content is nevertheless lucid and more.

Some level of CS knowledge is required. I found a basic idea of how P2P networks operate, a basic idea of encryption and some idea of GPU processing to be needed. Note that you do not get a Coursera certificate for this course.

Cleanly separates the different pieces that go into making bitcoin, and explains each of them simply and clearly. Covers not only bitcoin and cryptocurrencies, but also the wider implications and applications of the blockchain to non-currency applications.

Highly recommended for anyone interested in bitcoin or the blockchain.