《Bitcoin: A Peer-to-Peer Electronic Cash System》读后整理
这是中本聪在2008年发表的论文,第一次提出比特币的概念。这篇论文给出了对比特币的完整构想,依次介绍了比特币最重要的概念,包括交易、时间戳服务器、工作量证明、交易在网络中的过程、激励、回收硬盘空间、简化的支付验证、价值的组合与分割、隐私,最后通过概率论证明双重支付难以发生——攻击者难以篡改自己的交易。 论文首先定义了一枚电子货币是一串数字签名:每一位所有者通过对前一次交易和下一位拥有者的公钥签署一个随机散列的数字签名,并将这个签名附加在这枚电子货币的末尾,电子货币就发送给了下一位所有者。下一位所有者,即交易中的收款人通过对签名进行检验来验证。过程如下:

(需要说明下,很多中文翻译版把图中的 Signature 翻译为公钥,这是错误的,这里的 Signature 就是指哈希得到的数字签名) 工作量证明(Proof of work),是针对一个前缀带几个0的目标数值T,寻找一个数值I,这个数值I能用指定的哈希算法(例如,SHA-256)哈希到目标数值T。区块数据若发生变化,这个数值I就需要重新计算找到。因此,工作量证明实质上是一cpu一票的投票制度,最长链上有最多的工作量、表达多数人的决定。 交易在网络的过程为:1、新的交易广播到所有计算节点;2、每个节点把新的交易收集到一个区块中;3、每个节点都为这个区块寻找目标的工作量证明;4、一个节点一旦找到工作量证明,就把这个区块广播到其他节点;5、其他节点在验证这个区块里的所有交易都是有效且之前未出现过,则接受;6、节点若是接受这个区块,就会在这个区块之后去创建新的区块以延长区块链,即,把这个区块的哈希值,存到下个区块的 “Prev Hash” 字段中。

激励分为两种方式。一种是,区块中第一个交易是特殊的、会产生一枚新的货币,由这个交易的创造者获得。另一种是交易费,一个交易的输出值小于输入值,差值就是交易费、会加到这个区块中作为激励。 回收硬盘空间。当最近的交易已出现在足够多的区块中,则可以丢弃它之前的交易数据以节省硬盘空间。比特币使用 Merkle 树的结构实现硬盘回收又不破坏区块的哈希值。(区块头不包含交易信息,大小为80字节,每10分钟左右产生一个区块)

简化的支付验证。用户可以在本地保留一份最长的工作证明链,利用 Merkle 树结构在工作链上找到目标交易已被接受,这个交易之后链接着新的区块则能进一步证明该交易有效。

一次交易可以由多个输入与多个输出组成。通常是一个较大的输入或多个较小的输入,两个输出——一个用于交易、一个用来找零。 隐私的保护,传统银行模型的隐私保护是通过禁止公共访问来实现,比特币的隐私是通过公钥匿名实现。公众能看到交易、但是不知道交易者是谁。 最后,论文通过泊松分布证明攻击者难以制造一条更快的区块链,无法完成攻击。 参考文献: 中本聪,"Bitcoin: A Peer-to-Peer Electronic Cash System",https://bitcoin.org/bitcoin.pdf