原标题:The Science of the Blockchain

作者:Roger Wattenhofer

译者:DFJ

此翻译未获授权,仅为个人学习之用。可转发链接但请勿转发内容。


只要跟金融技术方面的同事闲聊,就会发现所谓的“区块链” (blockchain) 成了潮流,仿佛跟互联网一样重要似的。一些人似乎把区块链理解为一段魔法代码,能够让一个分布式系统的参与者们对系统获得共同认知,以便追踪系统的变化。在分布式系统社区,一致性技术在比特币 (区块链这个词就来自比特币) 这样的密码货币出来之前早就为人所知了,存在各有优劣的各种概念和协议。

本书的目的是为了给过去几十年出现的最有趣的那些方法一个科学上精确的概述。如果你是个开发者 (不管是不是金融行业),这本书会帮助你更好地理解你的分布式系统的得失,以及哪些可能哪些不可能。

本书

本书介绍了构建具有容错能力的分布式系统的基本技术。我们会给出那些让容错操作成为可能的不同协议和算法,并且会讨论实现这些技术的实际系统。

本书把主要的思想分开讲,每个话题一章。每章从一个介绍性的故事开始,给出这章内容的动机。算法、协议,以及定义是正式给出的,这样你就知道如何实现了。有些见解作为定理证明,这样你就知道为什么相关的概念和算法是正确的,以及它们能保证什么。其它文字主要作为述评出现。这些述评讨论了各种非正式的想法,并且经常为下一个想法做准备。不过,即便不读这些述评,仍然可以懂得每章的精义。每章还谈了这章涉及的思想的历史,这样你可以找到原始研究资料。

本书里我们会看到不同的模型 (以及模型的组合) 在不同场景下可能都有意义。本书的焦点在于实践中重要的协议和系统。换句话说,我们不是因为某些东西好玩才讨论它们,而是因为它们确实有实际意义。

不管怎样,开心就好!

目录

  1. 引言

    1.1 什么是分布式系统?

    1.2 全书概览

  2. 容错性与 Paxos

    2.1 客户端/服务器

    2.2 Paxos

  3. 共识

    3.1 两个朋友

    3.2 共识

    3.3 共识的不可能

    3.4 随机化共识

    3.5 共享的硬币

  4. 拜占庭协议

    4.1 有效性

    4.2 多少个拜占庭节点

    4.3 国王算法

    4.4 轮数的下限

    4.5 异步拜占庭协议

  5. 认证过的协议

    5.1 带有认证的协议

    5.2 Zyzzyva

  6. 仲裁系统

    6.1 负载与工作

    6.2 格点仲裁系统

    6.3 容错

    6.4 拜占庭仲裁系统

  7. 最终一致性与比特币

    7.1 一致性,可得性,以及划分

    7.2 比特币

    7.3 智能合同

    7.4 弱一致性

  8. 分布式存储

    8.1 一致性散列

    8.2 超立方网络

    8.3 DHT 与 Churn