用人话解释比特币原理(转载)
究竟是什么让一枚虚拟货币的汇率在3年间翻了25000倍,是什么力量让央行副行长“感兴趣”但“不承认”,抛开投机与商业欺诈比特币作为一种工具究竟有没有价值?欢迎收看今天的走进“伪”科学——用普通人也能理解的话解释比特币。
比特币大热,北京时间上周六下午五点多,比特币网络刚刚成交了有史以来最大的一笔交易——19 万比特币被抛向了市场,按照当时的价格 5000 左右计算,一个 10 亿人民币级的富翁就这样诞生了,你们随便感受下。
但是,这篇文章并不是教你如何投机的,本人也无意怂恿任何人进入比特币投机市场。请务必看准这几个大字再继续往下阅读:
比特币市场风险巨大,投机请异常谨慎!
好了,该打的预防针打了,接下来我们谈正事:这篇文章并不讨论比特币的商业逻辑,也不讨论它是不是骗局,而是将比特币的原理用通俗易懂、非极客也能听理解的语言进行解释,让大家来看看这个让央行副行长表示“有特点”而且“很有启发性”的电子货币究竟是个啥东西。因为考虑到要做到浅显易懂的原因,有些地方的解释并不十分严谨,有基础想要进一步研究的同学可以去看这篇比特币的原始论文《比特币:一种点对点的电子现金系统》。
下面,我们就开始走进比特币……
首先,从比特币的本质说起,比特币的本质其实就是一堆复杂算法所生成的特解。特解是指方程组所能得到无限个(其实比特币是有限个)解中的一组。而每一个特解都能解开方程并且是唯一的。
以人民币来比喻的话,比特币就是人民币的序列号,你知道了某张钞票上的序列号,你就拥有了这张钞票。
而挖矿的过程就是通过庞大的计算量不断的去寻求这个方程组的特解,这个方程组被设计成了只有 2100 万个特解,所以比特币的上限就是 2100 万。
到这里为止,比特币本质和挖矿的部分就解释完了,很扯对吧?凭什么我知道了钞票号码钱就是我的?那我把钱花出去了还记着号码不行么?
不行。
比特币网络是一个在线系统,比特币本身作为一串数(特解)离开了比特币网络一点用处也没有,这些数只有放进比特币网络里才能正常运作。换句话说,在这里将比特币比作下片的种子,将比特币网络比作下载用的网络,离开了下载工具,徒留你一大把种子也下不到泷泽萝拉不是么?
比特币网络被设计成了一种分布式存储数据库,换句话说,就像你在银行存了钱,银行将这些钱拿出去借贷了但是你仍然能够在你的网银账户里看到钱数,其实就是银行在数据库里写下了你的账户金额。比特币也存在这么一个数据库,但是这个数据库并不存在某个中心的服务器里而是面向所有人公开:每一个比特币钱包都是一个节点,这些节点用类似于 BT 下载的 P2P 网络相连,现在比特币钱包安装后下载的数据大约为 7G,记录着全世界所有人比特币钱包里的数据。当然,如果以后发展比特币钱包继续增大也可以抛弃一些陈旧且无意义的交易细节。
为什么要这么做?
还记得比特币只是一串数吗?为什么能保证这串数在同一时刻只会拥有一个合法的主人呢?
答案来了:每当你发起一次交易的时候,都会向整个比特币网发出广播,内容如下:
“我是节点 A,有特解 123,现在要转账给节点(钱包)B,你们看好了昂?”
比特币网络里的其他节点收到这个信息纷纷与自己的本地数据库进行比对,并回应:
“我带入方程算了下,这确实是个解,而且我看到了 A 是有 123,B 节点也存在,我承认这笔交易。”
当确认的节点数达到一定量的时候(取决于收款方想要有多稳妥),交易就成功发生了。
接下来,越来越多的节点收到了这个消息,并且没有人提出异议,这个交易记录就被整个比特币网络所接受,从此特解 123 成为了 B 钱包里的所有物。
如果你在交易结束之后,欺骗本地客户端,又让 A 钱包发出信息:
“我是节点 A,有特解 123,现在要转账给节点 C,你们看好了昂?”(即之前提到的记人民币号手法)。
其他节点收到信息与本地数据库一对比:
“不对,我这写着特解 123 在 B 手里,不承认交易。”
越来越多的节点拒绝了交易,于是你的交易就失败了。
挖矿也是同样的原理,利用大量的计算力去计算方程组特解,而你的矿机程序会先与本地的数据库进行对比,发现自己这里从来没有这个特解,于是向全网广播:
“我是 A,我这有个新比特币,叫 234,你们要没见过我可就收下了?”
之后的原理与交易就相同了。
比特币网络有一定的容错机制,可以保证即便是有一定的欺诈者(一直发发布虚假信息)和捣乱者(一直拒绝承认别人的交易)也不会影响到整个网络的运转。
也因此,比特币虽然是匿名的但是也是完全透明的,只要你想的话,你可以在本地的数据库中追查到某个比特币从被发现之时起所有交易经过的节点。通过这些交易记录与那些各大比特币交易所的市场深度进行对比,其实要人肉某个账户相对来说也是比较容易的。
有人又会问:既然比特币的算法是开源的,数据库是开放的,网络是无人控制的,那么难道不能以举国之力来“破解”比特币网络么?
知乎上有这么一个问题:“如果用天河二号做比特币挖矿机效果如何?”
简而言之就是比特币网络中现有的计算量已经非常庞大,即便是让国家级超级计算机加入比特币网络也不一定能获得优势,考虑到比特币的价格不稳定说不定还付不起超算的电费。而且在算法上,比特币保证了当整个网络的计算量提升的时候运算难度也会相应的提升,超算加入比特币网络大概也就只能领先一周左右。
还有同样的来自开源的问题:如果比特币的算法是开源的,那么怎么能够保证它的上限只有 2100 万,为什么不能修改?
谁告诉你不能修改的?当然可以修改
比特币官方客户端源代码中这个文件的第 998 行附近:
int64_t GetBlockValue(int nHeight, int64_t nFees)
{
int64_t nSubsidy = 50 * COIN;
// Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
nSubsidy >>= (nHeight / Params().SubsidyHalvingInterval());
return nSubsidy + nFees;
}
只要修改那个 50 就可以增加比特币上限值,但是问题是比特币是开源的,标准是开放的,网络是没有中心管理的。“官方”客户端改了用户不一定愿意用,第三方客户端一看用户不愿意用人家也不跟进,所以某一家改了这个数字一点意义都没有。除非有足够大足够多的节点统一采用了新上限的客户端才会导致比特币网络的货币存量上限上升。
所以,比特币的 2100 万上限不会增加并不是一个不能的问题,而是一个大家都不想于是达不成统一意见的问题(客观上确实就是增加不了)。
针对商业上的逻辑就不好分析了,是不是旁氏骗局仁者见仁,不过比特币所浪费的计算力确实是货真价实的浪费,可不是像 SETI@Home 那样给什么研究机构做了贡献。不过因为比特币算法发明人中本聪身世扑朔迷离,发表了开头的那篇比特币初始算法和体系的论文之后就人间蒸发了,也说不定人家是某个神秘科学家正在利用大家的计算量和宇宙未知力量作战。
不过,有一点到值得一提,现在中美都有金融界的相关学者提到了这样一个有趣的用途:比特币的这套系统和算法可以被用来代替现有的 SWIFT 国际资金清算系统,它的结算速度比现有的结算系统更快速,而且也十分安全可靠(这里是指算法可靠)。
但是,即便真的比特币算法被当作一种新型的国际间结算标准使用,也不会使用现有的比特币网络来做。就像同样采用 BitTorrent 标准,国内的某些下载客户端可以保证只给自己的客户端供源而无视其他客户端一样。银行肯定会修改一定的算法作为一种银行业专用的私有系统进行结算,现有的比特币也肯定不会得到这个新私有网络的认可,所以和大众也没什么关系,这并不算是一个十足的利好消息。
再吼一遍:比特币风险巨大,投机异常谨慎。
中本聪
比特币的创始者, 自称来自日本, 名叫中本聪 (Satoshi Nakamoto)。 2008 年, 此人在互联网上一个讨论信息加密的邮件组中发表了一篇文章, 勾画了比特币系统的基本框架。 2009 年, 他为该系统建立了一个开放源代码项目 (open source project), 正式宣告了比特币的诞生。 2010 年12月12日, 当比特币渐成气候时, 他却悄然离去, 从互联网上销声匿迹。
2008年11月1日,一个自称中本聪(Satoshi Nakamoto)的人在一个隐秘的密码学讨论组上贴出了一篇研究报告,报告阐述了他(她)对电子货币的新构想,比特币就此问世!
讨论组的老手们从未听说过中本聪这个人,有关他(她)的信息也寥寥无几,还都隐晦不明甚至自相矛盾。网上简介显示他(她)在日本居住,但他(她)的电子邮箱地址却是来自德国的一个免费服务站点,谷歌上也没有他(她)的任何信息,显然,“中本聪”是个假名。不过即便中本的身份是个谜团,他(她)的发明却让一个困扰密码学10年的难题“灰飞烟灭”。当人们对比特币津津乐道时,比特党也在试图揭开中本聪的神秘身份。在一个比特币聊天频道里,有人自负地认为“Satoshi”在日语中是“智慧”的意思,其他人则怀疑这是4家科技公司名字的“拼盘”三星(Samsung)、东芝(Toshiba)、中道(Nakamichi)和摩托罗拉(Motorola)。甚至连他(她)的国籍也受到质疑,因为他(她)的英语太地道了,简直毫无瑕疵。
有人暗示,或许中本聪不是一个人,他(她)代表一个有着未知目的的神秘组织谷歌的一个团队或是国家安全局。豪涅茨说:“我和这家伙通过几封电邮。”豪涅茨有一段时间是比特币核心开发成员。“我总认为他不是真实存在的人,我大概每两周收一次回信,就像有人偶尔检查邮箱一样。比特币的设计非常棒,不像是靠一个人就能完成的。”
中本聪很少透露自己的信息,他(她)在网上谈论的话题只限于源代码技术讨论。2010年12月5日,在比特币使用者开始要求维基解密接受比特币捐赠后,原本言谈简洁只聊业务的中本聪以前所未有的热情参与到讨中。“不,不要这样做。”他(她)在比特币论坛里发帖说,“这个项目需要逐步成长,这样软件才能在这个过程中不断增强。我呼吁维基解密不要接受比特币,它还是一个萌芽阶段的小型测试社区。在这个阶段,如果不能妥善处理,只会毁了比特币。”
在此之后,就像他(她)的神秘出现一样,神龙见首不见尾的中本聪又消失了。格林威治时间2010年12月12日6点22分,就在他(她)发帖争辩给维基解密捐赠比特币7天后,中本聪在论坛发了最后一个帖子,帖中谈到软件最新版本几个无关紧要的细节,他(她)的电邮回复也变得更加不稳定,最后完全终止了。比特党对他(她)的离开感到悲伤和不解。但不管怎样,他(她)的发明已焕发出勃勃生机。[2]
2身份曝光
没有人知道是谁发明了比特币。开发者使用化名,中本聪,但从比特币出现的那一刻起,人们就没停止过对中本聪身份的挖掘。并且从比特币上线那天开始,就有一台计算机在进行比特币挖矿工作,盛传这台机器就是中本聪的。所以如果望月新一真的是中本聪,他的身价显然已经过亿。
2012年5月20日消息,据国外媒体报道,计算机科学家特德·尼尔森(Ted Nelson)在YouTube上曝料化名中本聪(Satoshi Nakamoto)的比特币创始人其实是京都大学的数学教授望月新一(Shinichi Mochizuki)。
望月新一16岁进入普林斯顿大学,22岁读完博士。33岁时为东京大学全职教授。33岁是一个在学术界显得年轻的荒谬的年龄。望月新一最大的成就是著名的ABC猜想。
尼尔森证据有三点:
1.望月新一足够聪明可以想出比特币如此复杂的系统;
2.望月新一不使用常规的学术发表机制。相反,他的习惯是独自工作,发表论文后,让其他人自己理解。
3.望月新一的工作领域包含比特币的数学算法。[3]
关于中本聪真实身份另一种说法:
他从2140年(22世纪)回到2008年,他回来是专程为了修补自上次他回来拟的论文《Bitcoin: A Peer-to-Peer Electronic Cash System》中留下的隐性bug,据传在他乘坐时光机回来前的2140年,比特币算法出现了纰漏。