This is a read note of the ch2 of book “The Book of Satoshi”。

比特币实质上包含了以下概念:

  • 公开账本(称为比特币区块链)。可将它看成一本巨大的、可以公开翻阅的账本,该账本包含了比特币系统有史以来所有交易的账目记录,并且还在不断增加新的账本页。
  • 用于交易授权的非对称加密算法。
  • 构成分布式网络的计算机节点(也称为矿工),负责校验比特币交易以及更新公开账本。

在比特币术语中,组成账本的页面称为区块,因为它们就像“块状”的数据。区块链由许多单独的区块组成,长度在不断地增长,包含从 2009 年 1 月比特币推出以来发生的所有交易。比特币交易请求包含以下内容:

  1. 付款人的比特币地址,其中包含了支付的资金来源。
  2. 收款人的比特币地址。
  3. 需要转让的比特币数量。

由于区块链包含了所有与付款人的比特币地址相关联的出入账历史,管理着比特币网络的矿工可以证实付款人有足够的钱支付。所有人在任何时间都可以查看任意指定比特币地址链接的比特币的数量。虽然没人能知道比特币地址的拥有者身份(除非自己公开信息),但是与该地址相关的出入账记录以及账户余额却是公开可见的。

比特币软件的算法只允许私钥持有者“支取”关联在该比特币地址上的比特币。收款人把自己的比特币地址告诉付款人。因为只有接收方知道与自己地址关联的私钥,所以也只有他才能在后来获得、使用或转让这些比特币。

比特币的发送者用私钥对比特币交易进行数字签名。比特币交易实际上包含了相应的公钥(暂时假定这就是比特币地址)。系统使用该公钥校验数字签名的有效性,从而确认发送者确实是私钥持有者。系统允许私钥持有者使用公开账本里与其比特币地址相关的比特币,随后公开账本(即区块链)用包含这次交易的新账本页(即区块)进行更新。将新交易加入区块链然后公告比特币网络,把这些比特币作为收入记入收款方的地址账户,同时也作为支出记入付款方的地址账户。私钥由一长串数字和字符组成,通过由密码保护的比特币钱包(即用户计算机、移动设备或其他 Web 应用上的软件)进行存储和管理。

比特币是一个分布式体系,由一群自愿参与的计算节点来共同负责,这些矿工分布在世界各地。记账和支付授权可以由不同实体进行操作,了解系统如何以这种方式来维护每个人的利益就显得非常重要。

矿工是负责比特币网络运作的计算节点,它负责验证交易的有效性,并用包含最新交易的新区块定期更新区块链。比特币软件由每台计算机上的矿工运行,包含了由一组规则和约定构成的比特币协议。总的来说,比特币网络要求区块链(公开账本)持续更新,添加新的区块(账本页)。大约每十分钟新增一个区块,其中包含了一组最新的交易。虽然所有矿工都在产生下一个区块,但只有其中一个矿工会被选中,由它产生的特定版本区块将会被添加到区块链中。每个矿工在创建自有版本的下一个区块时都是为了自身的利益,这样可以从中收取该区块交易中的交易费 (多数由付款方支付)。除了交易费,有幸将区块加入区块链的矿工还会额外赚到一笔新“铸造”的比特币存款。矿工创建一笔额外的交易,将新铸造的比特币加入自己的比特币账户。这笔钱叫区块奖励。2014 年,比特币协议允许每个新区块给矿工分配 25 枚新比特币。这是在收取交易费的基础上额外赠送的。比特币刚开始推出时,每个区块分配 50 枚比特币(BTC)的奖励,奖励数量大约每四年减半。

矿工在收到区块及其问题答案后就开始着手验证,证明为区块找到的答案是正确的。矿工寻找问题答案时常常需要数百万次哈希计算才能找到正确的模式,但其他矿工验证答案的正确性则只需要一次哈希计算。比特币协议设置问题难度的方式是让找到答案所需的时间平均保持在 10 分钟左右。如果解答问题产生新区块的矿工给自己的账户记入了超过当前允许的 25 枚新比特币,其他的矿工就会拒绝接纳该矿工所提供的区块,并继续为自己的区块寻找答案。每个区块都略有不同,所以每个矿工要找的答案均不相同。

接下来的过程看起来不太自然,当一个矿工解决了计算任务并通过验证,其他矿工马上接受失败,并同意将该矿工的区块作为区块链的下一个区块,然后再开始着手下一个区块。下一个区块将上一个区块产生后的最新交易添加到自己的区块,然后再寻找新区块的问题答案,然后加入到永无止境的区块链。

比特币的运作方式解释了为什么第一个找到问题答案的矿工只能发给自己符合协议的比特币奖励。这么做可以保证矿工生成的区块可以被其他矿工所接受,并收到相关的报酬(即交易费)。同样,其他矿工也不能通过拒绝接受有效区块而获利。比特币支付系统只有在运行正常时才能保持其价值。如果矿工都只接受自己生成的区块而拒绝其他的,那就无法达成共识,整个体系的价值将因此而被摧毁,对所有矿工都没有好处。这种情况下,矿工有再多的比特币也没有价值。因此,如果大家都尊重比特币软件的协议,那么所有矿工都将受益。因此,比特币的表现与之前所描述的公地悲剧完全不同。

每个矿工在任何时刻都以解答难题的方式积极从事生成下一个即将加入区块链的区块的工作,这就是工作量证明。第一个完成工作量证明的矿工获得的奖励包括新铸的比特币(本书写作时为 25 枚)以及产出区块交易费的总和。交易费通常是由付款人在发起交易时附加的一笔小钱。所有的比特币将在大约 2140 年铸造完毕,此后矿工将仅以交易费作为奖励。

工作量证明是比特币矿工之间的竞赛,竞相发现将要生成区块的具有某种特征的 SHA-256 哈希值。为了简单起见,假设输出哈希值的取值范围为 0 到 1000000,第一个算出小于 10000 哈希值的矿工胜出。10000 就是阈值,每个比特币区块都含有一个数字,其唯一目的就是帮助达到阈值。比特币区块内用于阈值测试的数字称为“临时数”(nonce)。矿工不断增加临时数的值,直到区块的哈希值小于阈值。因为区块包含了给矿工自己的奖励,所以每个矿工的区块有不同的信息,因此相同的“临时数”会产生不同的哈希值。所以工作量证明就是寻找到那个临时数,以生成小于阈值的哈希值,而阈值由比特币协议确定。每台矿工计算机上运行的比特币软件控制着比特币协议不断调整问题的难度,确保大约每 10 分钟才会有一个矿工解答完问题。目的是让区块链定期加入新的区块,新区块中包含着之前 10 分钟发出的最新交易。

一定区块过后,比特币协议评估区块产生的速度:如果平均小于 10 分钟,就调高难度级别(即增加前几位 0 的个数,降低任何单个矿工获得特征摘要的概率);如果长于 10 分钟,那就降低难度级别(即减少前几位 0 的个数,以提高算出的概率)。

比特币的正常运行很大程度上依赖于共识。当两个矿工几乎同一时间完成区块时,共识开始发挥作用。当这 种情况发生时,两个矿工都向比特币网络广播已解答的区块。两个区块会被其他所有矿工接收和保留,但是矿工们会在先收到的那个区块的基础上计算下一个区块。假定 50%的矿工先收到矿工 A 的区块,50%的矿工先收到矿工 B 的区块。这种情况类似于体育比赛进入到了加时阶段。两个区块中哪一个会成为真正区块链的一部分取决于下一个区块解答得有多快,以及解出下一个区块的矿工先收到矿工 A 的区块还是矿工 B 的区块。二者中最长的成为正式链。所有矿工丢弃另一版本的区块链,使其成为所谓的孤块。

比特币在互联网上运行时还使用了一套矿工和钱包客户端必须遵从的预定协议。钱包客户端是智能手机上的 App 或者个人电脑上的程序,它可以通过钱包客户端发起支付交易,然后由矿工在交易被纳入区块链之前验证。如果矿工不遵守协议,其工作将被其他矿工拒绝,也就不能为比特币网络的运行做出贡献。

一个针对比特币的代表性争论是中本聪为比特币设定的 2100 万的发行上限。一旦达到上限,怎么才能阻止有人提高上限呢?事实上无法阻止,但需要大多数矿工的合作才能实现这个修改。即便在大多数矿工同意解除限制的情况下,如果某些矿工不同意,也将会导致区块链的分叉。赞成取消限制的矿工将会使用一个版本的区块链,不赞成的矿工将会使用另外一个版本。实际上,这就会产生两种虚拟货币,即“原始比特币”和“量化宽松比特币”。长期来看,其中一个版本将会更久和更好地保持价值,并因此成为首选版本,而另外一个版本的价值将会下降。哪个版本将会把价值保持得更久,并留住比特币用户的兴趣?至少到目前为止,比特币开发社区对软件变更仍持非常保守的态度,实施重 大变更的首选方法是创造新的虚拟币,有些对货币的数量不做任何限制。

支撑比特币的最后一个特征是,不仅软件是开源的,而且记账的方式也是公开的。由于彻底改变了记账方式,一些人已经将区块链命名为“三式记账法”。任何人都可以检查区块链并且验证记账是否符合当前比特币协议的要求和规范。区块链的分布式文件共享意味着任何运行比特币软件的人都连接了比特币网络,并可以访问区块链。

作为一种货币系统,比特币的影响巨大。其中一个优势是人们通过它可以进行全球汇款,就像发邮件一样简单。这对要向祖国亲人寄钱的移民工人特别有利。相比之下,提供跨境汇款的公司都要收取高额费用。在法定货币和比特币(BTC)之间兑换也存在着处理费用,但是远比传统的汇费要低很多。

另一个好处是网上购物和网上捐赠。当前的信用卡支付体系未来可能会发生彻底的改变。信用卡支付需要提供付款人的大量信息,包括账单地址和信用卡背面的 3 位数字验证码。从本质上讲,这相当于把比特币账号的加密私钥送给了商家。这个安全漏洞所引起的大量欺诈行为已经通过高刷卡费、商家要处理的退款等形式表现出来了。信用卡公司每年需要投入大量资金来处理欺诈指控。这些成本转嫁给商家,然后再通过更高的商品和服务收费转嫁给消费者。

比特币的另一个重大影响体现在金钱方面,特别是其系统能力体现出它是金钱而不仅仅是货币。货币具有以下属性:

  • 交易的媒介(在贸易中作为中介)
  • 记账单位(可计算,可量化)
  • 持久性(可以存在很长时间)
  • 可分割性(所以要有更小的单位)
  • 便携性(便于携带运输)
  • 互换性(可以相互交换,1 个价值单位可以替换另一个等价的单位)

除了具有上述属性之外,金钱还具有另一个属性:长期保值的能力。与金钱不同,货币会受到通货膨胀的影响。。越 南战争和林顿·约翰逊的“伟大社会”就是靠电子印刷机稀释美元来资助的。物价上涨要过一段时间才会显现出来,紧接着,黄金的美元价格就显著地高于美元与黄金脱钩前大家普遍接受的 35 美元每盎司的固定价格。美元因此变成了一种自由浮动的、不断膨胀的货币。现在其他国家的货币也都如此。

穷人受通货膨胀的影响最大,中产阶级在一定程度上亦是如此,而富人则利用发债和各种金融衍生工具收购公司以及创收型的商业地产。他们知道债务会随着货币一起贬值,人为提供了额外的收益。赢得“贫困之战”的第一个办法是摆脱通货膨胀,恢复货币长期保持价值的形式。但是别指望政府会提出甚或接受这种方案。

在以金钱为基础的经济体系中,储蓄者不会与制造商、建筑商、工厂还有那些推迟消费的人竞争资源。资源指的是任何形式的能源、商品、时间和劳动,特别是专业化的劳动。印刷美元并没有创造更多的石油、电力,也没有让每天多出几个小时。