前言
目前网上有很多关于比特币的科普文章,但是,由于比特币是一个综合了网络,经济学,社会学等多重知识的技术,妄图通过一篇文章就能将其完全说明白是非常不现实的。同时很多通过举例子来让用户简单理解比特币是什么的文章都是不靠谱的,因为如果要真正理解什么是比特币需要做思维认识上的改变,通过类比来认识比特币只会让人浮于表面。
比特币是一种互联网技术产品,但如果单纯从技术角度去了解它是如何运作和实现的,那也会沦为另一种浮于表面,因为搞懂了技术也只是理解了它如何运作,而没理解它为什么要如此运作。
要搞懂比特币是什么,关键还是要搞明白中本聪为什么要用这样的方法(区块链)来实现比特币。庆幸的是比特币白皮书里给出了答案,只是很多人没去发现。我将用户10篇文章逐段解读比特币白皮书,帮助普通人以及不了解比特币的程序员们认识下什么是比特币。
首先,我们来看比特币白皮书的第一段:
1.摘要
本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构。虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值。我们(we)在此提出一种解决方案,使现金系统在点对点的环境下运行,并防止双重支付问题。该网络通过随机散列(hashing)对全部交易加上时间戳(timestamps),将它们合并入一个不断延伸的基于随机散列的工作量证明(proof-of-work)的链条作为交易记录,除非重新完成全部的工作量证明,形成的交易记录将不可更改。最长的链条不仅将作为被观察到的事件序列(sequence)的证明,而且被看做是来自CPU计算能力最大的池(pool)。只要大多数的CPU计算能力都没有打算合作起来对全网进行攻击,那么诚实的节点将会生成最长的、超过攻击者的链条。这个系统本身需要的基础设施非常少。信息尽最大努力在全网传播即可,节点(nodes)可以随时离开和重新加入网络,并将最长的工作量证明链条作为在该节点离线期间发生的交易的证明。
首先我们来看第一句话“本文提出了一种完全通过点对点技术实现的电子现金系统,它使得在线支付能够直接由一方发起并支付给另外一方,中间不需要通过任何的金融机构”,这句话直接而清晰的表明了中本聪想干嘛,他想发明一种点对点的电子现金系统,同时这个系统不需要任何金融机构的支持。所谓“不通过任何金融系统”意思就是不需要一个清结算中心,所以这句话的意思就是我们现在常听到的“去中心化的电子现金系统”。
那么为什么要去中心化?目前世界的所有金融系统都是由国家控制,每个国家的“央行”都记录着这个国家全体国民的银行资产,我们任何一笔银行转账都需要经过这个中心的确认,你说这样有什么不好吗?好像也没有吧~但就是有那么一群人他们希望生活在权威下,期望自由的不受政府管控的进行货币交易,正式带着这样的GEEK理想,“去中心化化的电子现金系统”才成为了众人追求的目标。
那么如何通过技术来实现呢,第二句话给出了答案——“虽然数字签名(Digital signatures)部分解决了这个问题,但是如果仍然需要第三方的支持才能防止双重支付(double-spending)的话,那么这种系统也就失去了存在的价值”,中本聪这个白皮书显然是写给同专业人看的,因为他都已经默认大家都已经知道“数字签名在电子货币里的应用”了,这里要做下基础知识科普:数字签名是一种密码学技术,通过这种技术我可以证明信息是本人发出的,而不是其他人代发的(想深入了解可自行百度公钥/私钥)。也就是说,因为有了数字签名,所以我们可以不需要一个权威中心的认证,也可以自行证明交易是由双方自愿授权发起的。这样也就解决了资产的所有权问题,因为只有我可以去使用我拥有的资产,其它人或组织都无法使用我的资产。但是,仍有一个问题需要解决,那就是虽然我可以证明这笔钱是我花的,并且花的是自己的钱,但是如何从我的账户里扣掉这笔钱,避免我重复花同一笔钱,只通过数字签名还没解决,这个问题也就是“双重支付”问题,整部白皮书也主要是围绕着如何解决这个问题而展开的。
在摘要余下内容概括的介绍了如何来解决这个问题的,这这一步不需要去理解,因为初学者也不可能理解,如果理解了那么后面的内容也没必要看了,所以,略过,直接看下一章。
2.简介
互联网上的贸易,几乎都需要借助金融机构作为可资信赖的第三方来处理电子支付信息。虽然这类系统在绝大多数情况下都运作良好,但是这类系统仍然内生性地受制于“基于信用的模式”(trust based model)的弱点。我们无法实现完全不可逆的交易,因为金融机构总是不可避免地会出面协调争端。而金融中介的存在,也会增加交易的成本,并且限制了实际可行的最小交易规模,也限制了日常的小额支付交易。并且潜在的损失还在于,很多商品和服务本身是无法退货的,如果缺乏不可逆的支付手段,互联网的贸易就大大受限。因为有潜在的退款的可能,就需要交易双方拥有信任。而商家也必须提防自己的客户,因此会向客户索取完全不必要的个人信息。而实际的商业行为中,一定比例的欺诈性客户也被认为是不可避免的,相关损失视作销售费用处理。而在使用物理现金的情况下,这些销售费用和支付问题上的不确定性却是可以避免的,因为此时没有第三方信用中介的存在。 所以,我们非常需要这样一种电子支付系统,它基于密码学原理而不基于信用,使得任何达成一致的双方,能够直接进行支付,从而不需要第三方中介的参与。杜绝回滚(reverse)支付交易的可能,这就可以保护特定的卖家免于欺诈;而对于想要保护买家的人来说,在此环境下设立通常的第三方担保机制也可谓轻松加愉快。在这篇论文中,我们(we)将提出一种通过点对点分布式的时间戳服务器来生成依照时间前后排列并加以记录的电子交易证明,从而解决双重支付问题。只要诚实的节点所控制的计算能力的总和,大于有合作关系的(cooperating)攻击者的计算能力的总和,该系统就是安全的。
