比特币科普笔记(转载自Tony)

2008年底,中本聪完成了比特币最初版本的代码,然后在把一篇论文发表在一个密码学的邮件列表中,解释他的构想,这就是比特币白皮书。9年后,翻看他的邮件回复,能发现许多关于他的有趣的细节。他是一个比较倔强的人,据推测可能最早于2007年就开始实现代码,用了近两年时间完成了比特币的完整模块。他在一封邮件中解释到,他希望能实现这些细节,来确定自己关于比特币的构想究竟能否行得通.
 
I had to write all the code before I could convincemyself that I could solve every problem, then I wrote the paper.
  
为此他设计了方案,研究了算法,编写了代码,几十年的知识积累,才促成了一套体系最终流行。理解他的设计,理解其技术细节,理解背后的深意,都不是一件容易的事。抛去众人对比特币的无论是狂热还是不屑,无论是拥抱还是拒绝,我们首先要做到对它的了解才可能有发言权。
 
这篇文章希望用不那么技术的语言去解释比特币的整体思路。我尽量做到深浅结合,把我的理解讲清楚。我们先解释比特币的运行原理,包括它的形态,特点,产生机制和流通机制,之后简要介绍下比特币的传承及其经济学上的意义。
 
我们以银行为例来理解货币。现在的银行系统完全可以脱离现金交割来证明你拥有某一笔资产。银行会提供给各个分支机构、ATM机器、商户pos机,关于某个储户的账户余额信息,储户在查询、取款、支付、或转账过程中,都具有完全的支配账户余额的能力。只要你拥有账户的密码,你就可以对自己的账户做任何的操作,而且接收方也完全认可你的支付结果。这就是电子货币,只不过这是对法定货币的电子化。
 
比特币的形式与银行卡看起来并无区别,你的账户存在网上,也是一个账号一个密码。你要支付给谁,就输入对方的账号,接着输入转账金额,经过大约1小时,对方就收到了,也就接着可以用收到的金额去购买或者支付其他服务了。
 
事实上,即使比特币从未出现,我们现在的生活可能也不会发生太多的变化。现代的银行系统其实完全已经将资金流动数字化了,那比特币究竟提供了哪些创新的理念?
 
平等的记账权
 
不同于只有银行有权对账务往来做记录,比特币是由一群人一同参与记录的,而且是每个人都有权参与,即使你并不持有任何比特币。每一笔比特币的转账和产生,形成了一个公共的账本,每人都有权查看。这个账本通过数学方法,保证里面的记录不会被篡改。因为这种透明性和安全性,许多人逐步认可了其价值,开始有更多的人使用比特币支付商品或者服务。
 
虽然每个人都有权来记账,但是记账也有成本,系统为了鼓励你来记账,会提供赏金。这个赏金就是新产生的比特币,这个过程因比特币的高价值而可以类比于发掘矿藏而被称为挖矿。
 
因为没有中心记账机构,要想使用比特币来支付,需要把支付信息广播给网络上绝大多数用来记账的计算机,只要他们认可了这次支付记录,才证明这笔支付事实上存在。
 
如何记账
 
运行着比特币挖矿软件的计算机收到广播而来的支付信息后,就开始验证这些支付信息是否有效,并且把自己认可的和偏好的支付信息打包在一起。这个打好的包被称为区块,不同的计算机会去竞争打包区块的权利,因为谁先打包成功,谁就可以获得系统的奖励。能够完成打包的计算机,要有足够快的计算速度,因为需要求解非常复杂的数学问题,耗时费力,同时也要有些运气,但是平均都要花费10分钟才能完成。新区块产生后会立即广播给网络内的其他计算机,宣告自己成功赢得这次打包的权力。其他记账的电脑收到这个新的区块后,如果验证没有问题的话,就承认这个区块已经完成,然后立即投入到下一次竞赛中。经过一小时后,不断打包的区块就积累到了足够的高度,达到了6层,这时全网公认一小时前的支付记录就生效了,也就是支付到账了。
 
发起支付,支付被打包,这个包后面再产生新的5个包,总共一小时,支付到账。
 
安全性
 
这么多人一起记账有什么好处?

人多一起记账更稳定,除了多个备份形成的技术上的冗余,还可以理解为中心服务机构极有可能被所在地的法律所干涉,分布在全球不同的地域和国家,数据更安全,服务更稳定。
 
此外,如果有人恶意修改了里面的记录,改如何发现?

比特币通过数学方法来计算前一个区块的内容摘要,后面的区块里面包含了前一区块的这个摘要。计算摘要的数学方法能保证当内容发生任何变化时,摘要都会变化,通过这种方法来实现所有的记录不能更改,或者更改后一定会被发现。摘要同时很小,只有几十个字母,这就保证了这种技术不会明显增加区块的大小。相邻区块的内容存在关联,形如链条,因而这种方法被称为区块链技术。9年来,这些由区块链接而组成的账本,已有180G大小。
 
点对点和分布式
 
除了规定好的必须要遵守的约定之外,对不同的计算机而言许多事务可以采取不同的策略,最终的账本的样子也取决于参与的计算机的选择。所有参与的计算机组成了一张网络,它们每台大约与另外8台保持着网络连接,相互通信。这些设备没有主次之分,都拥有平等的权力。一次支付信息的通过相邻的8个电脑广播到全网,或者一个打包好的区块广播到全网,只需要几秒钟就可以实现。但每台电脑可以完全自由选择自己是否承认一笔交易、是否要永久拒绝某个交易、或者故意要忽略掉某个区块。他们因为参与的目的是希望能够获得挖矿奖励,往往不会恶意去破坏系统,但是一般会把交易手续费太低的交易排除在账本外。
 
这种无中心服务器而相互连接的电脑,称之为点对点的方式。而每台电脑都保存了这180G的账本,称之为分布式账本。
 
流通的数量
 
由原始的程序保证,比特币的发行总量是2100万个,从2009年第一批50枚比特币被挖掘出来算起,已经有1680万个比特币被挖掘了出来。其最小的细分单位现在是一亿分之一个比特币,不过由于大部分的交易都要收取至少千分之一的手续费才能被成功收入这个公共账本,所以太小的比特币其价值并不大。
 
比特币迄今为止共产生了1680万个,而拥有一个比特币以上的账户地址,不过才70万个不到。要知道,所有的黑市交易的,挖矿的,炒币的,几乎都在这70万里面。这70万人持币总数占据95%,人数占比2.5%。还有1200万个地址拥有1个一下,千分之一个以上,持币总数不足5%;另外还有1500万个地址,拥有千分之一个以下,这些纯粹是拿来玩的,这些地址的持币总数有万分之二。考虑到同一个人名下有多个账户,这些账户地址背后的真人数量,可能至少要除以3。
 
账号和密码
 
这个公共的账本里面记录着每次支付的记录,但进账方和出账方都是一串数字表示的地址,真正背后的人不容易被查出来,因而具有一定的匿名性。
 
实际控制人通过另外一串字符串,证明自己拥有这笔资产,也用其来控制资金的转出,这串字符串称为私钥,是一个比特币账户最核心的秘密。由于比特币账本除了私钥之外的之外,其他的几乎完全公开。不像银行,你输入密码错误多次后,账号就会被锁定,比特币的账号密码,你可以无限次的去试,背后的数学保证了其他人很难破解你的私钥。但是,如果你也忘记了这个私钥,那账户里面的资金就基本无望再找回来了,因而保存私钥需要额外的注意。
 
协同共识
 
如何能在各自为政的情况下,最终保持着相同的一份账本,就是比特币最为核心的技术。
 
系统中不同的计算机打包的内容很可能不同,信息传递进来的顺序也不同,本身的计算能力也不同,虽然在几秒内都能获得全网所有的信息,但是它们都需要作出判断和取舍。每个区块的打包是有难度的,这个难度基于一种数学难题,这种难题需要耗费计算机大量的时间去计算,只有完成了计算、找到了答案的计算机,才是真正地完成了打包,也就是完成了区块的记录权,也只有这种情况下才能获得挖矿收益。
 
因此,我们可以衡量每个区块的产生出来的难度,可以用一个数字来表示。区块从最早到最新,把难度数字加起来,就会有一个衡量整个链条的难度指标。全网虽然各自为政,但是即使有不同的节点可能计算了不同的问题,一旦收到新的区块成功打包的消息,它们都会通过整个链条的难度来做判断,找到数字最大的那条,也就是所谓的最长的链条,而舍弃其他的链条。这条难度最长的链就是每台设备最为认可的目标,分散的节点各自努力,各有偏好,但是最终会被最长链条的权威所统一。
 
防范欺诈
 
如果一个账户在余额不足的情况下超额支付给一个人,该如何判断?
 
每个分布式的节点都知道所有的交易记录,每台电脑都下载了相同的一份180G的数据的,那里记录了所有的账务来去的信息,那么也就知道此时某个账户下究竟有多少余额。这是用来避免超额支付的。
 
如果同时支付给多人,也超过了自己的余额,而且把不同的支付信息发给了不同的记账节点,这就需要时间来判断了。可能网络中某些计算机认可了你的其中一笔支付,另外一些计算机认可了你的另一笔支付,但是最终要合并在最长链条的时候,总会有一笔支付不能通过验证而会被舍弃掉。在一个容纳了几千万台电脑的网络中,好的制度是有这样的容错能力的。
 
我们总结下比特币的特点,至少包括以下几个:
 
 
1. 分布式记账,没有中心节点
 
2. 记账产生新币,鼓励记账
 
3. 点对点的网络,平权参与
 
4. 账本历史,无法更改
 
5. 分散的设备,统一的目标
 
6. 匿名地址,隐藏身份
 
7. 支付信息,全网可见
 
 
思想传承
 
比特币这套严密的体系,深究进去,叹为观止,但绝非没有传承。在中本聪之前,至少有三个人曾经在加密电子货币领域里面做出过有价值的贡献。
 
David Chaum在1983年出版的论文《Blind Signatures For Untraceable Payments》中提出了使用公钥加密技术可以实现匿名的支付,但是他的系统里面银行仍然是存在的,这点不同于后来的比特币,但可谓思想的先驱。我们知道从1976年公钥加密算法被公布出来后,也就仅仅几年后,就有人设想将其运用到货币领域。回顾这段历史,能发现在上世纪80年代,新技术的传播和应用的速度如今天一般别无两样。
 
另外一位,Adam Back于1997年提出的HashCash技术,本来是要解决垃圾邮件的问题的,他提出如果有人要发邮件给收件人,那么他要付出一定的代价,比如说先解决一个小的数学难题,这能至少花费发件人几分钟的CPU时间,对于垃圾邮件服务器的宝贵的时间来说,他们可能就此作罢。这种技术本来有人更早提出来,不过HashCash的技术完全实现并且应用在生产中。这项技术也深度启发了后来的中本聪,包括比特币中让人最难理解的Proof-of-Work这个概念,在HashCash中已经变得成熟。
 
Wei Dai, 汉语名戴维,一位在微软工作过的华裔,于1998年曾提出更为激进的电子货币B-cash的设想,他提出的设想中包含了一个去中心化的货币系统,以及货币产生机制,但是在支付技术中,他的概念中仍然包含了一些中心节点,类似于服务器一样的概念。Wei参与了微软公司重要的加密软件的开发工作,他其实有能力去实现他所构想的系统,不过并没有将想法付诸实践。
 
后来中本聪在他们的基础上做出了更为激进的设想,同时也实现了代码,完成了给终端用户使用的比特币软件。中本聪在电子货币的路径上走的最远、最彻底,他的知识同时在广度和深度两个方面上完成了积累,工程实践能力、数学、密码学、计算机网络、经济学等等,但凡在其中任何一个环节薄弱,可能比特币就不会出现。
 
后来的人推测他可能不是一个人,而是一个团队。以他留下的文字的蛛丝马迹来看,他也极有可能是一个人,比如他的作息时间异常严格而准确,每天定时休息6个小时。据他休息的时间来推算,他极大的可能是生活在美国。虽然他用一个日本的化名,但他的英文是优质的母语水平,有些用词还极其传神,有兴趣的朋友可以去读他的论文,以及他不多的几篇邮件和论坛中的回复。当然,他的邮件中偶尔也会出现一个语法错误,这个人虽然神秘,但是应该并非来自未来的穿越。
 
问题来源
 
这些人有些是技术上的极客,也有些是思想家,也有些把思想付诸了商业实践,但是驱使他们在电子货币领域思考同样的问题,其背后可能更有深意。为此,我们要参考中本聪的白皮书,不过在这篇论文中,没有太多涉及到他为什么要设计比特币。关于问题背景,中本聪讲的不多。
 
Commerce on the Internet has come to rely almostexclusively on financial institutions serving as trusted third parties toprocess electronic payments. While the system works well enough for mosttransactions, it still suffers from the inherent weaknesses of the trust basedmodel.
 
What is needed is an electronic payment system based oncryptographic proof instead of trust, allowing any two willing parties totransact directly with each other without the need for a trusted third party.
 
文中的意思,他提出了对于银行的效能的质疑,同时表达了作为中间人的金融机构,其实可以不需要。那怎样保护交易的双方呢?对于保护商家而言,他的方案是顾客支付了之后就不能取消。对于保护顾客,他在文中有提到资金托管计划,不过没有展开来讲具体的设计。他主要着眼于比特币系统在没有金融机构的情境下,支付的高效性。
 
比特币创建之初,预期的交易手续费会比银行更低。同时其技术设计能够确保在一小时内的支付到账。而且只需要互联网就可以支付的特性也方便任何两人之间转账,即使是两个使用完全不同法币的国家之间,跨地域的特征明显。而稳定,则是通过分布式的冗余架构来实现的。
 
当然可能谁在当时也无法预料到,9年后的今天,现在一笔比特币交易,手续费竟然达到了十几美元。当然,比特币产生以来的绝大多数时间,交易手续费是可以忽略的。以千分之一个比特币的手续费来估算,其交易手续费几年内也都不足人民币几毛钱。
 
另外,对于小额交易,比特币做不到类似支付宝这样的秒到账,所谓的快捷其实不快。但如果交易额非常大的情况下,比如说要向国外汇款几万美元,那一个小时到账的优势就很明显,同时十几美元的成本也就不算什么了。
 
概括来讲,用于支付的场景下,大额转账手续费廉价,到账相对快速,高度国际化,高度稳定,这是比特币的独特价值。再加上匿名特性,更为一些热爱自由、拒绝被监控的人士所喜爱。在交易这个层面,比特币在不依赖任何中心机构,可以在全球范围转账,并且成功吸引了众人的注意力。这个层面上,比特币的现状应该是满足了设计者的预期的。
 
并行货币
 
如果说比特币的网络里面有大量的交易产生之后,姑且不去验证是否真的可以对银行系统产生影响,如果拥趸众多,交易体量足够大,完全可以当做一个独立的经济体系,并行于法币交易体系,这时就会有些更有趣的推理。比特币有可能会从更本质的层面去接近和替代银行的作用。
 
再回到银行的深层功能上来分析。我们知道银行产生的本源并不是为了方便储户交易的,银行本质上是通过存贷差来赚取利息的,支付交易仅仅是银行的储户足够多之后,形成的网络效应带来的额外功能,处理商户结算完全可能成为银行的成本,只有有足够的储户,才可能从商户交易中获取交易手续费。
 
如果银行是一个自负盈亏的公司的话,在充分的竞争下,货币和金融制度的创新,金融产品的丰富,可能会普遍提高国民福利。然而对于持有国有大行定位的,或者是政府充分兜底的银行,其本身的经营可以是非常优秀的,也可能仅是依赖于货币产生的机制以及与权力的距离而得以保持优势。国民从印钞机构新发货币的授信,也就是获得原始信贷的能力,这是根据一个人与权力的远近而逐层递减的。与权力越近的人,越早获得印刷出来的钞票,这些人购买了资产,从而提高了资产的价格。之后逐步由后续的人依次获取流通中的资金,距离权力远的人,可能很难享受货币发行的红利,随着时间的推移,反而会面临更高的资产价格。这就是印钞不一定能够提升国民财富水平,反而助长了通货膨胀的背后机理。
 
银行一边提供了利息和安全的存储,为储户带来便利;但同时也是法币体系的最主要的维护机构,因为它售卖的就是法币的使用权,背后用于支付的是人们的劳动和时间,而其维护的则是造币者的权力。法币体系的支付没有问题,最大问题就在于我们无法相信法币的产生机制。

比特币以无中心的、严格遵守既定规则的、纯技术的支付结算系统的形象出现。这个系统带来了比特币的流动性,流动性产生初步价值,再通过一种特殊的机制和网络效应来吸引更多人的使用,放大流动性产生的价值,最终可能会有意或无意地从法币造币权中赎回一部分造币权。而这种特殊的机制就是挖矿,其本质是产生新的货币。
 
在最早产生的比特币中,创造者中本聪引用了来自挖矿当天(或前几天)的2009年1月3日的The Times报纸中的一个新闻标题:“Chancellor on Brink of Second Bailout for Banks”,并把其永久地写入了创世区块. 政府为什么要救助银行,这是一个无法理解的疑问。对于银行系统的讽刺,就这样埋在比特币的第一个区块,然后将传递给数以千万计的电脑。
 
可以说任何电子虚拟物品,一旦有可能成为一般等价物时,本质上都可以理解为货币,也都会有扩大自己使用范围的倾向。若无政府监管,我们相信Q币也一定能够用于支付日常生活所需,给店家的QQ号打款Q币可能比微信扫二维码支付早10年就可以实现。类比Q币,比特币也一定会被使用者用于这样的服务;难以监管,那么也就一定更加疯狂。一旦被理解为货币,货币之间本能地就有沟通和竞争的关系,后面的事情完全不需要创造者去设想,它会沿着自己的内在逻辑逐步演化下去。每一种货币都有其造币流程,也都试图要去实现流通和生产之间的闭环。
 
从支付系统作为思考的起点,必然落脚于创造独立于法币的生产体系。这个逻辑可以概括为:比特币以及后来一众的竞争币,希望形成一个丰富的一般等价物的市场,让法定货币成为其中一种,而不是唯一的那一种货币。与法币并行。在这套体系中,贸易结算,商品零售、工资发放,都以比特币为媒介,不需要法币的参与。
 
从09年以来,9年时间产生了大量的关于比特币及其背后的区块链技术的媒体文章、书籍、线上讨论组、交易网站、矿工、持币者等等。比特币与以下几个词经常能关联在一起,财富、黑市、涨跌、电力、黑客、自由、去中心化等等,我对新闻热词往往倾向于保持一段距离,对不能快速理解的事物就更难产生热度,加上心中被一些其他的让人着迷的事情占据,没有精力旁骛,也就没太关注这个领域。
 
前不久一位同学来沪,讲述起他们正在操办电子货币交易所的事迹种种,这9年时间真的是变化的太快,越来越多人开始参与到了这个行业里面。我随口问起这比特币挖矿究竟是在计算一个什么问题,同学快速给出了一个答案,只言片语却干货十足,引起了我的兴趣。但是仍然还有些细节我尚不能完全理解,于是在上上周末,开始了一次区块链技术的探索之旅,从椭圆曲线加密技术到挖矿算法,从比特币网络到比特币持币的分布,从中本聪本人到比特币产生的历史环境,从CPU与GPU的区别到ASIC矿机的构成,从比特币的产生到比特币的流通,查阅了些资料,做了些学习,希望能把这些在一周内产生的认识记录下来,以便之后重温和复习,这就是这些文章的来源。
 
Andreas M.Antonopoulos的书《Mastering Bitcoin》给了我极大的帮助,中本聪的比特币白皮书自然是不能错过的经典,问答网站stackexchange的bitcoin版是我需要不断光顾的地方,知乎里面也汲取了不少养分,各种搜索引擎不断开动,要找各种信息的原始出处和英文原文,终于才能梳理出来一些曾经疑惑的问题和过程中不断发现的新问题的答案。
 

文章备注:本文最早由作者发布在简书和知乎上。文本经作者授权发布。