|
究竟是什么让一枚虚拟货币的汇 率在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 标准,国 内的某些下载客户端可以保证只给自 己的客户端供源而无视其他客户端一 样。银行肯定会修改一定的算法作为一种银行业专用的私有系统进行结 算,现有的比特币也肯定不会得到这 个新私有网络的认可,所以和大众也 没什么关系,这并不算是一个十足的 利好消息。
再吼一遍:比特币风险巨大,投 机异常谨慎。
|
|