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.

LB

I find this course prepared very well. There are many perspectives and this course does not concentrate on the technology only. I find this course very helpful. The level is more then just beginner.

AG

Feb 08, 2017

Filled StarFilled StarFilled StarFilled StarFilled Star

Loved this course! It was very thorough. However I think assignments could have been made more clearer as it was often hard to figure out what needed to be done without checking discussion forums.

レッスンから

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.

講師

Arvind Narayanan

Associate Professor

字幕

Hello and welcome to the final lecture of the series on Bitcoin and crypto currencies. A title, perhaps appropriately enough, the future of Bitcoin and you'll see that I had a question mark there and I put a question mark there for two reasons. One is that I'm not claiming to have any special insight into what the future of Bitcoin is going to be, I'm not going to make any predictions. You can think of this as possibilities for the future of Bitcoin perhaps. But another more important reason that I wanted to have a question mark there, is that a lot of these ideas for where Bitcoin is going to go and where cryptic current technologies are going to go and where blocking technologies are going to go, has come from entrepreneurs and developers and hobbyists, ecetera, and that's great. What are the consequences it's had is that this conversation has tended to be a little bit breathless at times of how block chain technologies are going to revolutionize the world, and it's great to see that kind of enthusiasm. But as an academic researcher, one of my roles is to consider all of these proposals. And to categorize them, analyze their pluses and minuses and necessarily almost take a little bit of a skeptical view and so on. So I'll be doing that in this lecture as well. And that's the other reason I had the question mark in there. So we're going to be taking a look at these technologies, but also sort of analyzing them critically. Okay, so when we say the future of Bitcoin, that could be interpreted in a few different ways. One is thinking about how the Bitcoin system itself is going to change. Are there going to be major forks? And we've seen hard forks and soft forks before. We've seen what that would look like potentially. One could think about whether that's gonna happen, and what new features would go in if that were to happen. One could talk about efficiency and scalability improvements and so on, so modifications to the Bitcoin system itself. That's not quite the sort of thing that I'm interested in in this lecture. In particular, what I mean when I say the future of Bitcoin is a set of ways in which block chain technology can be used, that's been proposed to decentralize a variety of things stocks, bonds, even property whatever that means, we'll see. So in other words, people have looked at Bitcoin and went hm-mm, we managed to decentralize currency. That actually worked. Let's decentralize everything, so it's this notion of decentralizing everything that we're going to drill pretty deep into. We're going to look at the technology and we're also going to try to understand if that's a good idea for society, is it a good idea economically, etcetera. Okay, so what do I mean by this? More specifically, let's look at block chain as a vehicle for decentralization and I'm going to have a motivating example that I'm going to use to begin talking about this, but also come back to again and again in this lecture. It's gonna be our running example. And this is something that's called Smart Property. Smart Property is something that's been proposed, been around as an idea even before Bitcoin. But now it's taken on a much more concrete form. So let's look at what Smart Property is and how that would work, and how that would be integrated with the Bitcoin block chain. So here's the idea, let's look at it through the example of a car, and car ownership, and selling a car, and so on. So the first key idea is that the car is controlled by a cryptographic key. You have a digital key that opens your car. But further, there is some crypto built into it. How does that crypto work? The car has a public key that's hard coded into it. And your key is going to have the corresponding private key, corresponding to this public key. And therefore, perhaps when you approach the car, your key is going to automatically send a signed message to the car using, for example, Bluetooth. And a car having the right public key is able to recognize the authorized signature. And since only your specific key has the right private key embedded into it, nobody else will be able to fake that signature, and so you'll be able to approach and enter the car. So this is a foundational idea of smart property that we're gonna take it to the next step, but this is where it starts. And this I have to say, if you are going to make a digital car key, this is probably a really good way to do it. This is much better than a solution, for example, where the car has a secret number encoded into it, and your key also has a secret number, and your key simply sends that secret number to the car, which verifies if it got the right secret number. This is of course really insecure, because it's subject to replay attacks and so on, but instead a asymmetric cryptography based solution is a good way for authorizing the owner to enter the car. So let's assume that we have a car that works in this fashion, what can we do with this, in particular, what does it mean to integrate this with the block chain? Let me show you. So the next step in this design is that instead of having this public key hard-coded, what this car is going to do is it's going to dynamically update its public key based on what's going on in the block chain. So what does that mean? When the car rolls out of the factory it might have a particular transaction in the block chain hardcoded into it. With the understanding that whoever owns the private key corresponding to the output address of that transaction, basically controls the car. So in other words, the public key that the car uses to authorize the right owner, corresponds to the public key that's the output address of those Bitcoin transactions. So you'd have to have some specific types of crypto to make it work, the second sure scheme that the car is using should be the same as the signature scheme that Bitcoin uses and so on, but those are technical details that we can assume can be easily worked up. Right. And the car, you have to assume, is running a Bitcoin node, and is constantly listening to the block chain and using that to update its key. So how might that work? This is a block in the block chain, the next block roles around, nothing of particular interest happens, and now we have one more block. But here there's something interesting. We have a transaction in the new block which consists of transferring this particular transaction to a new address. And that new address let's say happens to be the public key of Bob. And so what'll happen now is that the car will automatically update its public key upon noticing this transaction to be this new public key. And whoever has the private key corresponding to this public key, will now be able to send the appropriate authorized assigned message to the car in order to activate it. And that's gonna be Bob now. So Bob's key now activates the car, and in this universe there's new distinction between ownership of the car and the technical ability to open the car or activate the car, by sending the right signature. So if we make that assumption, this Bitcoin transaction actually constitutes a change in ownership of the car. So that sounds pretty crazy. But now, we're actually going to take it to the next level of technical sophistication. What we're going to do is. You know it's not enough to just have a way to transfer ownership of the car. For this to be meaningful in the real world, you have to have something that represents what a sale of the car might look like. Sale of the used car from Alice to Bob. So what's necessary there? Not merely transfer of ownership of the car, but also transfer of payment from Bob to Alice. Right, but here is the key technical problem. Even if we assume that Alice and Bob manage to get to the same physical place at the same time, which in the core example is natural but, of course, we might want to use this technology for other things, like selling something over the Internet. But let's not even get to that level of complexity. Even if Allison and Bob are in the same place over the same time, these ownership transfers, or transfers of payments, are things that are happening purely in the block chain, right, with no physical record on real paper or their actual signatures or anything like that. But one of them has to go first. If Alice transfers her car ownership to Bob, Bob might claim that's the end of the transaction, and walk away without making the payment, so how will Alice prove to somebody if say she wants to sue Bob, that Bob didn't hold up his end of the transaction? That seems like a problem, so we actually want to find a technological solution to this. So to solve this problem of Alice and Bob being able to pay each other, but with neither of them being able to quit the transaction once the other one has done their half of the transaction. Here's the technical solution that we can use. We're going to create a single Bitcoin transaction that combines Bob's payment to Alice, with Alice's ownership transfer to Bob. And recall that this is a technique that we've used before. We've used it before in CoinJoin to create a single transaction that combines different parties funds together to get it out in a different order. And we're using the same technique here. Now this transaction has two inputs and two outputs. The first input and the first output corresponds to what the car understands to be representations of ownership of the car. But the second input and the second output correspond to the Bitcoin payment that Bob is making to Alice in exchange for the car. Now, to be sure, these inputs, this input and this output will also correspond to actual Bitcoin value, but it will be minuscule Bitcoin value, probably a satoshi, probably something very little, so it doesn't really matter. The only financial aspect of this transaction that matters is this input and this output that will correspond to the car payment. So as we saw in CoinJoin, you can create a transaction like this and both parties can separately put their signature on it. So that's exactly what Alice and Bob will do, it no longer matters if they're in the same physical place or not, one of them will construct the transaction sign it, and send it to the other. And the other party will not be able to change any of the parameters of the transaction without violating the first party's signature. And so the only option that the other party has, is either to quit the transaction, in which case no transfers happened, either of ownership or of payment. Or to put their own signature on the transaction and to broadcast it to the block chain. And once it gets confirmed to the block chain, when it has six transactions or whatever, whatever number that the car is looking for in order to signal a transfer of ownership, both of these will happen simultaneously. The car will switch owners, at least in the sense of who can control activation of the car, as well as money will switch hands. And we've accomplished something remarkable here, and this has some far reaching consequences. And we're gonna keep coming back to this example, and understand this in better detail, and talk about the different aspects of what we've seen. But let's start with something basic. So this is a technological way of recognizing ownership and transferring ownership. But what is the real world analogue exactly that it replaced, and how does this constitute a form of decentralization? Now if you think about for a real car, as things happen now, what constitutes ownership? It's clearly the title document. So we've gone from this world where the title document represents ownership, and let's be clear, this is a centralized form of ownership. What does that mean? The title document only has meaning to the extent that the DMV recognizes it. And to really drive home that point, when you sell a car, it's not enough to physically transfer this document to somebody else. One of you has to actually go and register that with the DMV. So there has to be a record of this in the centralized database. That what it means for a car to change hands. So it's that inherently centralized system controlled by the state. And so we've taken the state out of that whole equation, and we've made it a purely technological process of what it means for a car to have a certain owner. And furthermore, we've done this pretty cool thing which is to inherently couple the transfer of ownership of the car and the transfer of the payment. And all this is a completely decentralized process in that there is no intermediary anymore. So, we've achieved decentralization, in the sense of disintermediation. This is one of the types or levels of decentralization that we're going to see in this lecture. And, there are going to be several more. So this is the first of many examples that we'll see in this lecture that allows us to use block chain technologies to decentralize one of any number, any variety of different types of real world analogs and will achieve different types of decentralization. But two technical features that are gonna be common to most or all of these examples are what are called representation and atomicity. We're gonna keep coming back to representation and atomicity. What are these? So representation is the question of how do you encode some sort of complex transaction from the real world into something that can be understood in the block chain? In the example that we saw, the way that we did this, is we took the idea of a public key that the car uses in order to look for the right signature to authorize the owner. And we simply represented that public key as a Bitcoin address. So we sort of use this hack, this equivalence to solve the problem with representation. Atomicity is the other technical concept which is how do you couple the different sides of a transaction. So, that's, they all have to happen together, or none of them at all. Atomicity is an important security feature. It's not the only security feature, we are going to see some others, and this sort of thing can happen without atomicity. But it's a particularly important one, and in general when we talk about a particular way to use block chaining technologies for decentralization, it's not really gonna be viable unless it supports some form of atomicity. All right, so let's put these questions here that we're gonna use to frame the rest of the lecture. One obvious thing we can ask is what else can we decentralize this way? And we can ask, can this be done using the Bitcoin block chain itself, or does it require an alternative block chain? And we can talk about, what are those other alternatives to atomicity that I alluded to in the previous slide. And finally, something that interests me a lot, is it actually a good idea to do commerce like this? What problems does it solve compared to the real world? Does it introduce any new problems? Is it good for society? Is it going to be feasible in a business sense? So these are all questions that I'd like to take up.