读懂比特币白皮书的参考文献
任何一段高质量的内容,我们通过参考文献就可以了解该资料的一段相关的历史,今天我们就来了解一下比特币的参考文献,分析一下白皮书背后的故事。
首先,我们来了解一下加密货币的发展历史。
在数字货币的发展史中,很多人都提出过相关的一些概念。
David Chaum
早在1983年的时候,David Chaum 就发明了一个非常炫酷的公式,作为RSA算法的一个扩展,用于网络加密。(RSA:目前最有影响力的公钥加密算法,它能够抵抗目前已知的绝大多数密码攻击,已被ISO推荐为公钥加密数据标准。)
出于对加密货币的兴趣,以及荷兰历史上对加密研究的狂热,David Chaum在1980年末期移居到荷兰,就职于CWI(荷兰乌特勒大学的研究所,专注与研究数学,世界上最著名的数学研究机构之一),当时的荷兰是密码学和数学研究的圣地,所以David Chaum在荷兰创立了DIgicash, 构建依托于互联网的加密货币的发明,当时他这种不可追踪的加密货币引起了媒体前所未有的关注,不幸的是他的公司出现了一些失误,于1998年因经营不善破产。
Nick Szabo
1998年,Nick Szabo 发明了 Bit Gold,设置了与比特币类似的机制,用户通过竞争解决“工作量证明问题”,然后将解答的结果用加密算法串联在一起公开发布,构建出一个产权认证系统。
这一句非常解决比特币的思想,可惜 Nick Szabo 不懂编程,也没有开发者愿意合作,Bit Gold 一直处于理论阶段。
他还是“智能合约”之父,是区块链技术的创始人之一。在1999年发表了论文《The God Protocols》,其中提到“神”在所有交易过程中,扮演公正第三方的角色。原文中有如下描述:
“所有人都可以向神传达自己的意志(信息输入的过程),然后由神来决定其结果和回报(信息输出的过程)。上帝掌握所有讯息,并给出最终审判。所有人只知道自己的输入和输出,无法得知别人的输入 。”
那接下来就看看比特币参考文献中讲述了怎样的故事,我们通过这些参考文献,能看到技术是怎样的一个发展过程,我们甚至还可以看到,一个具备怎样素质的人可以站在巨人的肩膀上来造出比特币和他的网络。
首先,附在比特币白皮书中的第一个参考文献,就是 Wei Dai 的 B-money。W. Dai, "B-Money,"http://www.weidai.com/bmoney.txt, 1998.
Wei Dai(电脑工程师和解密高手,密码学领域做出很多贡献)发表了一篇名为B-money,an anonymous,distributed electronic cash system (B货币,一个匿名的,分布式电子现金系统)。这篇文章就是加密货币的灵魂先导。
在文章中Wei Dai 阐明了目前存在的所有加密货币体系的本质:
A scheme for a group of untraceable digital pseudonyms to pay each other with money and to enforce contracts amongst themselves without outside help.
在该体系中,那些无法追踪的数字化匿名地址能够相互交易,无需外部协助就可以执行他们之间的合同。
这篇文章并非是一篇专业的论文,而是一篇约1300单词左右的,文风很随意的文章,类似于我们现在博客里的文章。但就是这么一篇随意的文章,论证了10年后比特币和其他加密货币的核心概念,下面我们看一下文章中相关语句的描述:
Requires a specified amount of computational work(aka proof of work).
The work done is verified by the community who update a collective ledger book.
The worker is awarded funds for their effort.
Exchange of funds is accomplished by collective bookkeeping and authenticated with cryptographic hashes.
Contracts are enforced through the broadcast and signing of transactions with digital signatures.
通过以上内容可以看出,中本聪的比特币,借鉴了大量的Wei Dai 的 B-money 的核心思想、原理和协议。但 B-money 还没有解决“双重支付”的问题。
只是因为在1998年,互联网还没有开始大范围的普及,P2P技术还没有大规模的应用。另一个重要的加密技术-哈希算法还没有在加密货币领域引起注意。
Wei Dai 提出了分布式广播渠道和工作量计算的概念,但解决方案都不够完善。
除了Wei Dai 这篇不像论文,更像博客的文章,被中本聪在比特币白皮书的参考文献里列为第一外,其他的文章都是在专业的期刊上发表的专业学术论文。很多小伙伴本科毕业的时候写过研究设计,或研究所毕业时写过专业的学术论文,只要写过学术论文的小伙伴都知道,在学术界是没有任何人会将Wei Dai 的这种文章作为参考文献的。因为这篇文章作为专业学术文章,无论从文章的写作风格、研究论证方式都与标准差的太远了,但是中本聪不仅仅把它作为自己的参考文献,而且还放到第一个位置,也说明了中本聪为人处世的不拘一格。不管Wei Dai 是不是中本聪本人,但可以发现的是B-money对比特币有非常重大的影响。
再看参考文献的时候你会发现,作者在解决问题的时候,他用了什么方案,他的参考文献就会围绕这些方案逐步展开。
接下来参考文献二、三、四都是讲的时间戳相关的概念,而且在时间戳这个概念的基础上,文章的深度在逐渐的增加,也就是说基础的时间戳并不能解决比特币的问题,需要用一个更高水平的理论来进行支撑。
参考文献2,H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service withminimal trust requirements," (1999年比利时卢森堡第20届信息研讨会上核心讨论论文)In 20th Symposium on Information Theory in the Benelux, May1999.
一般设计时间戳大家都知道就是为了防伪,解决一个信任的问题,这篇文章的核心就是时间戳体系,它讲述的是比利时timestamping的时间戳体系。那什么是时间戳,wiki上有以下的解释:
A timestamp is a sequence of characters or encoded information identifying when a certain event occurred,usually giving date and time of day,sometimes accurate to a small fraction of a second.
所以数字化时间戳就是电脑记录某件事件的时间,时间戳是比特币引入的一个非常重要的技术,在比特币白皮书中的一个小结有讲述它实现的原理,后续的白皮书解读中会详细说明。
参考文献3,S. Haber, W.S. Stornetta, "How to time-stamp a digital document," In Journal of Cryptology,
vol 3, no2, pages 99-111, 1991.这篇论文是1991年发表在 Journal of Cryptology(非常牛逼的期刊,每年就4期,每期4-5篇论文,全年发表20篇论文,一般都是计算机、密码学界的领军人物及顶级学术会议推荐的稿件会在该期刊上发表,从投稿到录用发表,一般需要2-4年的时间)
这篇论文已经明确了要如何给数字文档加上时间戳这个问题了,这篇文章核心要解决的问题是:
The problem is to time-stamp the data, not the medium.
问题是要对数据加上时间戳,而不是媒介。
最简单的时间戳的应用就是我们在编辑Word文档时,每当修正文件时不同的时间都会被记录,当然这是最简单的时间戳的概念。作为比特币的时间戳应用要复杂很多,要防止文件是被伪造和篡改的。
数字时间戳能够提供电子文件的日期、时间信息但重点是你要确保这是安全保护的,所以他是比特币核心参考的技术方案之一。
参考文献4,D. Bayer, S. Haber, W.S. Stornetta, "Improving the efficiency and reliability of digital
time-stamping(提升数字时间戳的有效性和可靠性,这篇论文发表于1993年的纽约举行的通讯安全和计算机科学方法研讨会上,两位作者D. Bayer 和 S. Haber 都是时间戳领域的超级大牛)," In Sequences II: Methods in Communication, Security and Computer Science,pages 329-334, 1993.
在前面描述了时间戳的解决方案和可行性的问题后,第四篇论文已经进入到了提升时间戳的性能阶段,这同样是关于时间戳如何应用到数字签名的一个实现方案,用基于二进制数的算法,鉴定带有数字时间戳的文件的真实性,实现了验证成指数级增长时,如何减少验证时间戳证书所需要的存储和计算资源。
以上内容直白些说就是,你解决问题有一个方案,但这个方案要付出代价,当需要解决的问题比较少时,成本问题不是那么明显,但当你需要解决的问题成指数级增长时,解决方案的成本大小就是体系能否良性发展下去非常关键的问题了,比如说像比特币系统发展所需要的存储和计算资源随着网路体系的发展如何大幅度的降低成本,是非常关键的问题。像目前的比特币以太坊的数据库目前的电脑已经Hold不住了,所以解决这些问题也很重要,或许未来我们都需要一台超级电脑。
参考文献5,S. Haber, W.S. Stornetta, "Secure names for bit-strings(本文是1997年国际计算机协会的计算机和安全论文其中收集的一篇非常核心的论文)," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997.
这篇论文主要讲了哈希的相关内容,所以我们发现时间戳处理完了,接下来又来处理哈希的问题。本篇论文主要介绍的是单向散列函数(单向哈希函数)的应用案例。
单向哈希函数就是把任意长的输入字符串,把它变成固定长度的输出字符串,而且由这个输出的字符串,是没有办法推导回输入的字符串的。他一般的使用于消息摘要,秘钥加密都等。
比特币的地址就是有单向散列函数生成的,单向散列函数具有很难你想破解的特性,也就是说给出哈希值时,你很难反向计算出来原文的特征。其实就像战时间谍使用的密文,即使你拿到密文不动代表的意思也不知所云。在比特币的世界里是一样的,你拿到我的地址,没有办法得到我的其他信息,因此我们称他为单向散列函数。
在密码学领域,经常使用的单向散列函数有MD5和SHA-1。其中128位的MD5,最广为使用,但长度不够,而比较容易破解。而160位的SHA-1,比MD5安全写,但也有一些方法在大约2的60次方计算后将其破解。
因此美国国家安全局和美国国家标准与技术院又设计出来了更为复杂的SHA-2(包含SHA-224,SHA-256,SHA-384,SHA-512)。比特币使用的是SHA-2族群的SHA-256算法。
这篇文章,中本聪站在了巨人的肩膀上,把一套哈希算法学习并应用起来,用在比特币时间戳处理上面。
参考文献6,A. Back, "Hashcash - a denial of service counter-measure(哈希现金-拒绝服务式攻击的应对措施),"
http://www.hashcash.org/papers/hashcash.pdf, 2002.
哈希算法虽然很完美但是依然会被攻击,所以参考文献6就是来解决这个问题的。论文的标题是拒绝服务式攻击的应对措施,明显就是要解决攻击的问题了。
哈希现金系统(Hashcash不是现金,而是一个基于哈希算法的系统)最初于1997年5月被提议作为一种机制来遏制系统性滥用未计量的互联网资源,如电子邮件和匿名重邮程序。
这种函数很容易验证,但是很难破解。因为收信端只接受通过函数解答问题的信件(如登录验证等),于是发垃圾邮件者就必须耗费大量的CPU时间去发邮件给这些采用成本函数认证的人,否则信件就不会被接受。导致发垃圾邮件的成本大大增加,所以它确实遏制了垃圾邮件的发送。
另外通过哈希现金,可以证明自己做了多少运算,最本质上是利用单向散列函数去计算出一个带随机数的字符串的哈希值,并且指定哈希值符合一定规律才可以结束计算,我们也知道比特币就是依靠哈希现金的算法来生成和确认比特币的,所以就是这篇文章提供了很大的帮助。
哈希现金的创始人Adam Back,文章发表于2002年,是对哈希现金应用领域的进一步扩展。1997年是Adam Back首先发明了哈希现金机制,并且很快的就被应用到网络安全的很多领域。他也是比特币隔离见证的主要支持者,今天仍然致力于比特币和区块链技术的发展。
参考文献7,R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security
and Privacy(1980年美国安全保密研讨会上发表的), IEEE Computer Society, pages 122-133, April 1980.
这篇文献主要讲公钥密码的协议,所以所有文献一步步下来,你会发现整个比特币的白皮书构成是一个系统化的工程。
这篇文章充分利用了公钥密码系统特质的新密码协议,并且在不断完善。本文主要比较了几种关乎公钥分配以及数字签名的协议,并与传统方案进行对比。
公钥密码学兴起之前,对称加密是主流的加密模式,人们基于密钥来对信息进行加解密。密钥越长,密文被破解的难得越大。由于加密算法和解密算法都是同一模式,只有一把密钥保证加密数据的安全,因此这种加密算法也叫做“对称加密算法”。对称加密算法最大的弱点:甲方必须把密钥告诉乙方,否则乙方无法解密。而保存和传递密钥这成了一个最头痛的问题。这里也可以考虑一下你平时是如何记住各个平台的登录密码?或者如何记住自己银行的登录密码的?以信息的形式存在手机里,怕手机丢了被盗取。其实当时也是被这样的问题所困扰。
而公钥密码学是现代密码学最重要的一个进展。公钥密码学可以在不直接传递密钥的情况下,完成密文的解密。加密和解密可使用不同的规则,只要这两种规则之间存在某种对应的关系即可。
系统的安全性既不依赖算法的保密,也不用直接传递密钥。基于这种公钥机制的思想,开始出现了一系列非对称加密算法(像SHA-256,是比特币最为核心的技术之一)。
参考文献8,W. Feller, "An introduction to probability theory and its applications(概率论及其应用的介绍)," 1957.概率论是计算机科学的核心。
数字货币的诞生历程,就像是依次扣人心弦的橄榄球进攻,在Chaum,戴维等明星球员的冲刺下,每一次冲阵都前进了那么一段距离,但离达阵总还差那么一丁点儿。最后的拦路虎问题就是“双重支付”问题。其实解决的方法就是现场的,就是Adam Back 在1997年发明的哈希现金算法机制。但当时没有人想到把它向数字货币的方向去使用,而是大材小用的在限制垃圾邮件。
同时在1993年,一个叫 Hal Finney 接过 Adam Back 的接力棒,将哈希现金算法改进为“可复用的工作量验证(Reusable proofs of work)”。他的研究又是基于 Dahlia Malkhi 与 Michael Reiter 的学术成果:拜占庭容错机制(Byzantine Quorun Systerm)
通过以上的文献,你会发现比特币使用的很多技术早已成熟了,而在2008年由中本聪冲锋到了终点,将球投进了对方的壁垒。
中本聪把RPOW(可复用工作量验证),引入了加密货币领域,就像博尔特跑进了橄榄球赛场,一下子发出来巨大的威力。比特币就诞生了。而中本聪阐述了RPOW机制如何用于解决拜占庭将军问题,同时也消除了中枢时间戳服务器的需求,杜绝了被那些不怀好意的人想通过攻击服务器来进行比特币无限重复消费的问题。
所以像比特币系统中非对称加密、点对点技术、哈希现金这三项的关键技术,没有一项是中本聪发明的,但最后摘取桂冠的确实他,与其说是勇气,不如说中本聪恰好具备了发明比特币的全部素养,他即是“橄榄球手”又是“田径好手”最关键的是他还是编程大师,能够把自己的想法付诸行动。
很多人把中本聪比作加密货币界的乔布斯,纵横与不同的领域,然后集各家之长为我所用,最后形成了今天的成就,当然就如戴维(Wei Dai)的事后评价,开发出比特币至少要需要以下的必要条件:
对货币有非常深入的思考;
要了解密码学;
认为比特币这样的系统理论上是可行的;
要有足够的动力去将这个理念开发成实际产品;
编程能力出色,能保证产品安全;
有足够的社交技巧(建立社区)
密码学圈子的人具备以上3点的,都已经是凤毛麟角了,具备以上6点的人,必然是能发明出比特币了。
当然这些参考文献是加密货币历史中的一些关键事件,任何一项技术,从想法到现实,中间需要大量的基础研究工作,大多数研究人员终其一生在某个研究领域里面取得了一定的成就,可能也无法将自己的名字留在历史的长河之中,只有那些真正的幸运儿才能够结合技术发展历程,关键技术和主导技术出现的时间,以及当时的经济甚至政治的时机,才能崭露头角,夺得最终的桂冠。这其中除了个人的能力、来自合作伙伴的协助、名师的传承,甚至竞争对手的激励,以及最最重要的时机和运气,只有结合各种运气,才有机会成为最终的大成者。就像莱特兄弟在飞行概念提出四百年后才发明了飞机,紧接着的第一次、第二次世界大战,将飞行技术推到的至高点一样。比特币在美国的量化宽松和次贷危机的背景下也迅速的崛起。
另外介绍两种比特币投资同的价格参照模型,可以供后续大家在投资中进行参考:
NVT Ratio
股市常见的市值计算是:市值=净利润*PE(市盈率)
NVT Ratio(Network Value to Transactions Ratio),通过网络价值与交易价值的比率来判断数字货币的价格是否合理。
NVT=Network Value/Daily Transaction Volume
有网站提供专业的NVT统计,可以通过网站来查询该数据。大家只要学会看图就可以了,专业的NVT图像里会画出正常的范围值,我们看的时候一定注意,只要NV的比率在正常的值里面的话,就不会出现大幅波动的这种情况,举例如下:
当两个红色NVT超过Normal range时,它意味着当前比特币价格是有泡沫的,有泡沫是价格一般是怎样的变化,大家基本可以想象的出。图中12年和14年有2次NVT是高出Normal range的,这两次你会发现这个行情是快速上涨,然后大幅跳水,最高的跌幅92%,最低的跌幅83%。所以做短期投资的话NVT会给你很大的指导。
那在正常范围之内应该如何选择购买的时机点呢?看下图:
你会发现在这个正常值的范围内,及时比特币的价格出现下跌,他也会很快的回到一个稳定的状态,所以这很明显是处于无泡沫状态,所以NVT值可以判断是泡沫还是正常的增长,虽然短期的某个节点看起来不一定能明确是否该买入,但从趋势上我们会发现NVT值的指导意义是非常明显的。某种程度上可以帮忙预测某个价格高点是否可以持续。
那如何根据数据能预测比特币未来一段时间的增长趋势呢?这方面用的最多的工具就是彩虹图了。接下来说说彩虹图如何用在投资比特币上。
比特币的价格会在彩虹区域中进行波动,通过上图大家可以发现,当价格低于彩虹蓝色的时候,就认为这时候的价格偏低了,市场在一般出现极端价格时会有一个校正行为,这个校正行为一定是带来价格的增长。那么如果价格超出了上面的红色线,我们就认为比特币当前的价格偏高了,那接下来的校正行为一定是带来价格的下跌,所以这个图的价值在于判断当下节点比特币价格是否合理,另外它还可以帮助预测比特币整个价格的区间,当然可通过网址自行下载后来研究比特币的整个价格走势。