Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction

Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction

Published by Willington Island, 2021-07-22 07:30:25

Description: Bitcoin and Cryptocurrency Technologies provides a comprehensive introduction to the revolutionary yet often misunderstood new technologies of digital currency. Whether you are a student, software developer, tech entrepreneur, or researcher in computer science, this authoritative and self-contained book tells you everything you need to know about the new global money for the Internet age.

How do Bitcoin and its block chain actually work? How secure are your bitcoins? How anonymous are their users? Can cryptocurrencies be regulated? These are some of the many questions this book answers. It begins by tracing the history and development of Bitcoin and cryptocurrencies, and then gives the conceptual and practical foundations you need to engineer secure software that interacts with the Bitcoin network as well as to integrate ideas from Bitcoin into your own projects. Topics include decentralization, mining, the politics of Bitcoin, altcoins and the cryptocurrency ecosystem....

Search

Read the Text Version

  Sidebar: trust. ​Some people in the Bitcoin community use terms such as “trust minimization” or  “trustlessness” as a goal. This might sound backwards ‐‐‐ don’t we want systems that we can trust  to operate correctly?    The word trust has different meanings which might cause this confusion. When Alice lends Bob ten  dollars and says she trusts him, she means that she thinks he’s a trustworthy person, and that she  has confidence that he’ll pay her back. In the security context, a trusted component is one that  you’re forced to be reliant on. When people use the word trusted to describe Certification  Authorities, they mean that online security guarantees would be void if such authorities  misbehaved.    “Trust minimization” is a worthwhile goal in the sense that other things being equal, we want to  build systems with fewer components that we’re reliant on for security. But when you have a  hammer, everything looks like a nail, and Bitcoin enthusiasts often get carried away with removing  trusted components from systems. A trusted component is not always bad, and the existence of a  real‐world trust relationship is certainly not a problem by itself. Removing trusted components  might also have other non‐obvious drawbacks.    We’ll elaborate on these points in the final section, but for now, having noted the complexity of the  word trust, we’ll seek to avoid it and instead talk about security, a less ambiguous word.      The Framework    To summarize this chapter up this point, we can characterize proposals for decentralizing a wide  variety of things by asking four questions:    1. What is being decentralized?   2. What is the level of decentralization?  3. What block chain is deployed?  4. What security mechanism does it use?     With answers to these four questions, we can succinctly represent almost any of the proposals that  we see in the Bitcoin community for block‐chain‐based decentralization. Let’s consider a few  examples.    Example: Smart Property    1. What is being decentralized?  Property ownership and trading  2. What is the level of decentralization?  Disintermediation  3. What block chain is deployed?  Bitcoin’s block chain  4. What security mechanism does it use?  Atomicity    301

  Smart property, as we’ve seen, decentralizes the notion of property ownership and transfers of  ownership. It achieves complete disintermediation — it eliminates the need for entities like the DMV  or the state. We saw how to realize it using Bitcoin’s block chain, but you could certainly use an  alternative block chain. And finally, the key security principle that we used was atomicity in tying  together the payment with the transfer of the car ownership.    Example: Decentralized Prediction Markets    1. What is being decentralized?  Prediction market  2. What is the level of decentralization?  Competition, disintermediation  3. What block chain is deployed?  Altcoin  4. What security mechanism does it use?  Reputation, atomicity    In a centralized prediction market, the centralized platform or exchange performs at least two crucial  services: arbitrating the outcome of each event being wagered on, and selling shares to participants  (or facilitating participants to securely trade with each other). The decentralized prediction market  that we saw in Chapter 9 does away with the need for a central authority for both of these features. It  allows anyone to create a market for an event and be its arbiter by sending a simple transaction,  lowering the barrier to entry for performing this function. Thus, intermediaries still exist, but users a  free to choose from a set of competing intermediaries, and if the user is still unhappy, they can always  perform this function themselves. On the other hand, users directly trade shares with each other  atomically, so this function of the central authority has been disintermediated. Decentralized  prediction markets require new functionality not present in Bitcoin itself, and are thus naturally  implemented through a customized altcoin with its own block chain.     Example: StorJ    1. What is being decentralized?  File storage and retrieval  2. What is the level of decentralization?  Competition  3. What block chain is deployed?  Bitcoin  4. What security mechanism does it use?  Reputation    StorJ is a proposal by Greg Maxwell for file storage and retrieval. It has evolved over time, but we’ll  discuss a simple version of it. At a high level, StorJ deploys an “agent” that lives in the cloud and is  programmed to make certain decisions on its own. For example, it can rent cloud computation and  storage to give itself computational resources. Another feature it provides to users is the ability to  store a file for a certain period of time, say 24 hours, in exchange for payment in Bitcoin. It will keep  hosting the file as long it keeps receiving payment. Beyond simple storage, it can do a number of  interesting things we will not consider here. Within our framework, StorJ decentralizes file storage  and retrieval, which are the core features of centralized services like Dropbox. The agent is an  intermediary; it doesn’t matter for our purposes that it is automated. However, there can be    302

competition among intermediaries. Payment is done with Bitcoin, but there is no atomic link between  the agent performing its services and the payments it receives, so security is a matter of the agent’s  reputation.     Example: Zerocoin    1. What is being decentralized?  Mixing of coins  2. What is the level of decentralization?  Disintermediation  3. What block chain is deployed?  Altcoin  4. What security mechanism does it use?  Atomicity    Zerocoin, which we discussed in Chapter 6, is effectively a method for decentralizing the mixing coins  to achieve anonymity. Instead of using a centralized mixing service, Zerocoin realizes a cryptographic  protocol that is functionally equivalent to using a mix but uses no intermediaries at all — only math  and consensus. The relatively heavy cryptography needed in Zerocoin (and its successor, Zerocash)  means that a separate block chain is the far more feasible route. As for the security mechanism, recall  that the notion of burning a basecoin and getting a zerocoin in exchange for it are atomically coupled  through the same transaction; and similarly for later redeeming a zerocoin. This is an example of  atomicity.     11.4 When is Decentralization a Good Idea?    In this chapter so far, we have focused on the technical challenges of achieving decentralization. Now  we’re going to delve into questions of motivation. These questions are non‐technical but often they’re  just as difficult to answer: Is decentralization a good idea? Is it economically feasible? What are the  social consequences to decentralization?     Until now, we have used the term decentralization as a technical concept without being explicit about  the fact that it is politically charged. When we talk about replacing traditional systems fully or partly  with technological alternatives, we are really talking about redistributing power from well‐established  legal, social and financial institutions. Thus the idea of decentralization stems from Bitcoin’s roots in  the cypherpunk movement — a movement begun by nonconformists dreaming of cryptography’s  ability to empower individual autonomy. With the block chain, this ideal appear closer than ever. But  is this ideal feasible or desirable?     Returning to our running example, there are two problems that the traditional institutions try to solve  for car owners. The first is enforcing ownership, or essentially, preventing theft. The second is  ensuring secure exchanges, or preventing someone from being ripped off during a sale. So to analyze  how smart property fares compared to the existing system, we have to look at not just how efficient  things are when everything goes right, but also, crucially, how bad things can get when something  goes wrong.    303

  The challenge of real‐world security    Defending against any form of theft — cars, art, money, etc. — is an exercise of prevention, detection  and correction. Preventive security mechanisms try to stop theft before it happens, while detection  mechanisms ensure theft is perceived so potential corrective measures can be taken to revert the  damages of the theft and to punish the perpetrator (which could also serve as a deterrent to  committing theft). Car locks and alarms are preventive mechanisms, while GPS tracing units (such as  LoJack) can assist in detecting the theft and enabling law enforcement to recover the stolen car. The  key insight is the car lock is just one small piece of deterrence to car theft — one piece of a large,  intricate system involving police, insurance companies, courts, etc. If you lived in a lawless  environment, a car lock by itself wouldn’t be much of a deterrent to theft. Leaving your car locked on  the street would ensure that it would be quickly stolen.     The model we have seen for smart property relies heavily on preventive mechanisms. We were able  to achieve decentralization only because we equated possession with ownership — owning a car is  essentially equivalent to knowing the private key corresponding to a designated transaction on a  block chain. But this control mechanism is a poor replacement for our current mosaic of institutional  support, as we’ll explain.     If we reduce ownership to the problem of securing private keys, it raises the stakes for digital security,  which is a difficult problem with humans being a weak link. Programmers have endeavored to write  bug‐free code for decades, but the challenge remains elusive. Designers of cryptosystems have tried  for decades to get non‐technical users to utilize and manage private keys in a way that resists both  theft and accidental loss of keys, also with little progress. If the model of decentralization relies  excessively on private keys, cars might get stolen by malware or in phishing attacks, and the loss of a  key might turn your car into a giant brick. While there could be fallback mechanisms to cover these  types of events, inevitably such mechanisms tend to lead us back toward intermediaries and  centralized systems, chipping away at the benefits of the decentralized model that we were striving  for.     Another area of property transfers that is fundamentally human‐oriented is dealing with disputes that  might arise over the terms of sale or other aspects of the transfer. If the real world, if the participants  cannot reach a resolution, the issue will end up in court where a judge will methodically examine each  bit of evidence, testimony, and written words to reach a nuanced ruling about the validity of the sale.  It is tempting, particularly for technical people, to think of the law as a set of logical rules or  algorithms that can produce a clear‐cut ruling. However the reality of the legal system is that not only  are laws and contracts verbose, they are ultimately subject to human interpretation and discretion,  which is further removed from the notion of clear‐cut logical rules. This is not a weakness. It allows  resolving situations that are far more complex than what was anticipated by the individuals writing  the law.       304

To drive home the mismatch between the security properties we get from the decentralized model  and the security properties that we actually want, let’s revisit the earlier example of decentralized  crowd‐funding. We saw a technical mechanism to ensure an entrepreneur cannot cash out on  investments until the contributions sum to some pre‐specified amount. However, this by no means  prevents an entrepreneur who has successfully raised the funds from absconding with the money! In  fact, even with the current centralized model, there have been numerous alleged scams on  crowd‐funding sites, resulting in several lawsuits. In a model where entrepreneurs are potentially  anonymous and there is no deterrent effect from the threat of being sued, this problem is likely to be  far worse. It is hard to imagine that there could be a technical solution to this problem. This is another  case where the technology is only solving a small part of the problem, and frankly, not even the  interesting part of the problem.    To recap, the interesting problems with smart property seem to be social problems, issues that arise  when something goes wrong. Technology can ensure a very efficient transaction when all parties are  satisfied, but it is not well‐positioned to solve thorny disputes.    The pros and cons of smart property     As argued, smart property has difficulty decentralizing the aspects of a system that traditionally  require human intervention. In fact, automation may even make it more difficult by not composing  well with mediation and other processes if they are layered on after the fact. Finally, it may create  new categories of problems, such as requiring software security in addition to physical security in the  case of a car.     These examples are, to a certain extent, cartoon versions of what a thorough proposal for smart  property might look like. Many proposals in the Bitcoin community are more nuanced, but even in our  simple setting, we can discern the advantages and disadvantages of smart property.    The main advantage of smart property is the efficiency of ownership transfer, which can be done from  anywhere at any time. For sales of items less valuable than a car, maybe a smartphone or computer,  disputes are unlikely to end up in court, and so nothing is lost in that regard. For such items, atomic  transactions are a useful security feature.    Smart property through block chains also provide greater privacy, and even anonymity. While we’ve  argued that it complicates dispute resolution, privacy is also beneficial in a society where consumer  data is used by companies in ways that are unseen and likely unintended by making the purchases. In  some cases, it might be important for the parties to a transaction to not disclose their identities,  which is not feasible in a centralized intermediated model.     Finally, the decentralized model allows mediators to be chosen. Even if we are content with the legal  system, often disputes are mediated by private companies like Visa or PayPal behind closed doors  using a method that is hard to scrutinize. By using an alternative model where such mediation is    305

opened up to competition, we can potentially bring more transparency and public oversight to the  process.    Crypto, the state, and the big opportunity    There is a striking parallel between the emergence of the modern state and the goals of the  technology we have discussed in this chapter. In scaling society up from tribes and small groups,  governments have had to confront precisely the problem of enabling secure commerce and other  interactions between strangers. The methods may be very different but the goal is a shared one.     While a maximalist vision for decentralization might involve dismantling the state, this is not really  viable vision, especially when others who share our democracy want one. However, decentralization  through technology is not necessary in opposition to the state at all. In fact, they can be mutually  beneficial. For example, assuming well‐identified parties, transfers of smart property can use the  block chain for efficient transfers and still use the court system if there is a dispute. We think the big  opportunity for block‐chain technology is implementing decentralization in a way that complement  the functions of the state, rather than seeking to replace them.    It is tempting to think that things will get decentralized simply because the technology exists. But  in  practice, there needs to be a compelling economic reason, such as government regulation that is  particularly onerous or inefficient, or a power imbalance that could lead to abuse. As one illustration  of this, people in various African countries have adopted cell phone minutes as an ad‐hoc currency  that is outside of state control and less subject to abuses of power.      To summarize, we’ve shown the technical blueprint for decentralization in this chapter, and also  critically examined the motivations behind decentralization. We encourage you to look for compelling  use cases of decentralization, in particular ones that integrate into existing legal and regulatory  practices.           306

Conclusion to the book    Some people are excited about Bitcoin because of the underlying technology. Others are excited  about its commercial possibilities, and yet others about its social and political implications.  Reasonable people can disagree about the latter two, but we hope this book has convinced you that  technologically, Bitcoin is deep, novel, interesting, and based on sound principles. Beyond Bitcoin  there is a fascinating world of alternative cryptocurrency designs that we’re just starting to explore,  some of which might one day be more important than Bitcoin itself.    We got into Bitcoin because we believe in the power of its technology, and we think it’s deeply  connected to the rest of computer science. While we’ve highlighted how seemingly amazing new  technology can struggle to displace established institutions, we believe that in the long run, people  will continue to find new commercially and socially useful things to do with cryptocurrency  technology. Even if your interest is primarily commercial, you’d do well to master the underlying  technology — understanding its power and limitations will help you better weather the market’s hype  cycles.    We’ll end with a few words about where to go from here. One of the best things about  decentralization is that it’s a great platform for experimentation and learning. Anyone can download  and analyze Bitcoin’s block chain, or build their own applications on top of it; we hope you’ll take  advantage of these opportunities.    We’ve created a number of online materials that complement this text. Our ​Coursera course ​contains  video lectures that mirror the contents of this book. It also has quizzes and a series of programming  assignments. Taking the course will also give you access to the forums where you’ll find a community  of like‐minded learners.    While the first draft of this book is complete, it is a work in progress. We’re watching developments in  areas such as Ethereum, and whenever a body of scientific knowledge develops around a new area,  we will release additional chapters. Check our c​ourse website​!       307

About the authors  Arvind Narayanan​ (Ph.D. 2009) is an Assistant Professor of Computer Science at Princeton. Narayanan  leads the Princeton Web Transparency and Accountability project that aims to uncover how  companies are collecting and using our personal information. He also leads a research group studying  the security, anonymity, and stability of Bitcoin and cryptocurrencies. His doctoral research showed  that data anonymization is broken in fundamental ways, for which he jointly received the 2008 Privacy  Enhancing Technologies Award. You can follow him on Twitter at @​random_walker.​    Joseph Bonneau ​is a Technology Fellow at the Electronic Frontier Foundation and Postdoctoral  Researcher at Stanford. In addition to researching Bitcoin and cryptocurrencies he has worked on  passwords and web authentication, secure messaging tools, and HTTPS for secure web browsing. He  received a PhD from the University of Cambridge under the supervision of Ross Anderson and an MS  from Stanford under the supervision of Dan Boneh. Earlier he was as a Postdoctoral Fellow at CITP,  Princeton and he has previously worked at Google, Yahoo, and Cryptography Research Inc.    Edward W. Felten​ is a Professor of Computer Science and Public Affairs at Princeton, and the  founding Director of the Center for Information Technology Policy. In 2011‐12 he served as the first  Chief Technologist at the U.S. Federal Trade Commission. His research interests include computer  security and privacy, and technology law and policy. He has published more than 100 papers in the  research literature, and two books. His research on topics such as Internet security, privacy, copyright  and copy protection, and electronic voting has been covered extensively in the popular press.     Andrew Miller​ is a computer science PhD student at the University of Maryland, and previously  received his M.S. degree from the University of Central Florida. He has studied cryptocurrencies since  2011, and has authored scholarly papers on a wide range of original research, including new  proof‐of‐work puzzle constructions, programming languages for block chain data structures, and  peer‐to‐peer network measurement and simulation techniques. He is an Associate Director of the  Initiative for Cryptocurrencies and Contracts (IC3) at Cornell and an advisor to the zcash project.    Steven Goldfeder​ is a PhD student in the Department of Computer Science at Princeton University,  advised by Arvind Narayanan. He is a member of the Security & Privacy Research Group, a CITP  Graduate Student Fellow, and a National Science Foundation Graduate Research Fellow. His research  interests include cryptography, security, and privacy, especially decentralized digital currencies. His  current work involves increasing the security of Bitcoin wallets.    Jeremy Clark​ is an Assistant Professor at the Concordia Institute for Information Systems Engineering  in Montreal. He received his PhD from the University of Waterloo in 2011, where he applied  cryptography to designing and deploying verifiable voting systems, including Scantegrity — the first  use of an end‐to‐end verifiable system in a public sector election. He became interested in Bitcoin in  2010 and published one of the first academic papers in the area. Beyond research, he has worked  with several municipalities on voting technology and testified to the Canadian Senate on Bitcoin.   308


Like this book? You can publish your book online for free in a few minutes!
Create your own flipbook