Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction - Hardcover

Narayanan, Arvind; Bonneau, Joseph; Felten, Edward; Miller, Andrew; Goldfeder, Steven

 
9780691171692: Bitcoin and Cryptocurrency Technologies: A Comprehensive Introduction

Inhaltsangabe

An authoritative introduction to the exciting new technologies of digital money

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, the future of Bitcoin, and more.

  • An essential introduction to the new technologies of digital currency
  • Covers the history and mechanics of Bitcoin and the block chain, security, decentralization, anonymity, politics and regulation, altcoins, and much more
  • Features an accompanying website that includes instructional videos for each chapter, homework problems, programming assignments, and lecture slides
  • Also suitable for use with the authors' Coursera online course
  • Electronic solutions manual (available only to professors)

Die Inhaltsangabe kann sich auf eine andere Ausgabe dieses Titels beziehen.

Über die Autorin bzw. den Autor

Arvind Narayanan is assistant professor of computer science at Princeton University. Joseph Bonneau is a postdoctoral researcher at the Applied Cryptography Group at Stanford University. Edward Felten is director of Princeton's Center for Information Technology Policy. Andrew Miller is a PhD student in computer science at the University of Maryland. Steven Goldfeder is a PhD student in computer science at Princeton.

Von der hinteren Coverseite

"Block chain technology is set to disrupt many different industries. If you want to get up to speed on this fast-moving technology, this book should be your first stop."--Campbell R. Harvey, Duke University

"Among this book's many features are lots of nice, concrete examples and pleasant anecdotes, as well as a highly readable and enjoyable history of cryptocurrencies. Strongly recommended."--Tyler Moore, University of Tulsa

Auszug. © Genehmigter Nachdruck. Alle Rechte vorbehalten.

Bitcoin and Cryptocurrency Technologies

A Comprehensive Introduction

By Arvind Narayanan, Joseph Bonneau, Edward Felten, Andrew Miller, Steven Goldfeder

PRINCETON UNIVERSITY PRESS

Copyright © 2016 Princeton University Press
All rights reserved.
ISBN: 978-0-691-17169-2

Contents

PREFACE, vii,
FOREWORD The Long Road to Bitcoin JEREMY CLARK, ix,
CHAPTER 1 Introduction to Cryptography and Cryptocurrencies, 1,
CHAPTER 2 How Bitcoin Achieves Decentralization, 27,
CHAPTER 3 Mechanics of Bitcoin, 51,
CHAPTER 4 How to Store and Use Bitcoins, 76,
CHAPTER 5 Bitcoin Mining, 104,
CHAPTER 6 Bitcoin and Anonymity, 138,
CHAPTER 7 Community, Politics, and Regulation, 168,
CHAPTER 8 Alternative Mining Puzzles, 190,
CHAPTER 9 Bitcoin as a Platform, 213,
CHAPTER 10 Altcoins and the Cryptocurrency Ecosystem, 242,
CHAPTER 11 Decentralized Institutions: The Future of Bitcoin?, 272,
CONCLUSION, 286,
ACKNOWLEDGMENTS, 287,
ABOUT THE AUTHORS, 289,
INDEX, 291,


CHAPTER 1

Introduction to Cryptography and Cryptocurrencies


All currencies need some way to control supply and enforce various security properties to prevent cheating. In fiat currencies, organizations like central banks control the money supply and add anticounterfeiting features to physical currency. These security features raise the bar for an attacker, but they don't make money impossible to counterfeit. Ultimately, law enforcement is necessary for stopping people from breaking the rules of the system.

Cryptocurrencies too must have security measures that prevent people from tampering with the state of the system and from equivocating (that is, making mutually inconsistent statements to different people). If Alice convinces Bob that she paid him a digital coin, for example, she should not be able to convince Carol that she paid her that same coin. But unlike fiat currencies, the security rules of cryptocurrencies need to be enforced purely technologically and without relying on a central authority.

As the word suggests, cryptocurrencies make heavy use of cryptography. Cryptography provides a mechanism for securely encoding the rules of a cryptocurrency system in the system itself. We can use it to prevent tampering and equivocation, as well as to encode, in a mathematical protocol, the rules for creation of new units of the currency. Thus, before we can properly understand cryptocurrencies, we need to delve into the cryptographic foundations that they rely on.

Cryptography is a deep academic research field using many advanced mathematical techniques that are notoriously subtle and complicated. Fortunately, Bitcoin relies on only a handful of relatively simple and well-known cryptographic constructions. In this chapter, we specifically study cryptographic hashes and digital signatures, two primitives that prove to be useful for building cryptocurrencies. Later chapters introduce more complicated cryptographic schemes, such as zero-knowledge proofs, that are used in proposed extensions and modifications to Bitcoin.

Once the necessary cryptographic primitives have been introduced, we'll discuss some of the ways in which they are used to build cryptocurrencies. We'll complete this chapter with examples of simple cryptocurrencies that illustrate some of the design challenges that need to be dealt with.


1.1. CRYPTOGRAPHIC HASH FUNCTIONS

The first cryptographic primitive that we need to understand is a cryptographic hash function. A hash function is a mathematical function with the following three properties:

• Its input can be any string of any size.

• It produces a fixed-sized output. For the purpose of making the discussion in this chapter concrete, we will assume a 256-bit output size. However, our discussion holds true for any output size, as long as it is sufficiently large.

• It is efficiently computable. Intuitively this means that for a given input string, you can figure out what the output of the hash function is in a reasonable amount of time. More technically, computing the hash of an n-bit string should have a running time that is O (n).


These properties define a general hash function, one that could be used to build a data structure, such as a hash table. We're going to focus exclusively on cryptographic hash functions. For a hash function to be cryptographically secure, we require that it has the following three additional properties: (1) collision resistance, (2) hiding, and (3) puzzle friendliness.

We'll look more closely at each of these properties to gain an understanding of why it's useful to have a function that satisfies them. The reader who has studied cryptography should be aware that the treatment of hash functions in this book is a bit different from that in a standard cryptography textbook. The puzzle-friendliness property, in particular, is not a general requirement for cryptographic hash functions, but one that will be useful for cryptocurrencies specifically.


Property 1: Collision Resistance

The first property that we need from a cryptographic hash function is that it is collision resistant. A collision occurs when two distinct inputs produce the same output. A hash function H(·) is collision resistant if nobody can find a collision (Figure 1.1). Formally:

Collision resistance. A hash function H is said to be collision resistant if it is infeasible to find two values, x and y, such that x ? y, yet H (x) = H (y).


Notice that we said "nobody can find" a collision, but we did not say that no collisions exist. Actually, collisions exist for any hash function, and we can prove this by a simple counting argument. The input space to the hash function contains all strings of all lengths, yet the output space contains only strings of a specific fixed length. Because the input space is larger than the output space (indeed, the input space is infinite, while the output space is finite), there must be input strings that map to the same output string. In fact, there will be some outputs to which an infinite number of possible inputs will map (Figure 1.2).

Now, to make things even worse, we said that it has to be impossible to find a collision. Yet there are methods that are guaranteed to find a collision. Consider the following simple method for finding a collision for a hash function with a 256-bit output size: pick 2256 + 1 distinct values, compute the hashes of each of them, and check whether any two outputs are equal. Since we picked more inputs than possible outputs, some pair of them must collide when you apply the hash function.

The method above is guaranteed to find a collision. But if we pick random inputs and compute the hash values, we'll find a collision with high probability long before examining 2256 + 1 inputs. In fact, if we randomly choose just 2130 + 1 inputs, it turns out there's a 99.8 percent chance that at least two of them are going to collide. That we can find a collision by examining only roughly the square root of the number of possible outputs results from a phenomenon in probability known as the birthday paradox. In the homework questions (see the online supplementary material for this book, which can be found at http://press.princeton.edu/titles/10908.html), we examine this in more detail.

This collision-detection algorithm works for every hash function. But, of...

„Über diesen Titel“ kann sich auf eine andere Ausgabe dieses Titels beziehen.