比特币的另类视角(一)——到底,什么是比特币?(上)
2017-10-20 16:12 作者:Maxdeath 代尔夫特理工大学博士后 收藏(0) 阅读(1051) 评论(0)
(本人开这个专栏,以及写这篇《比特币的另类视角》的目的,是从技术角度出发探讨比特币与区块链技术的优势、机遇与问题。因此,在比特币这一点上,我的屁股既不坐在炒家和比特币拥护者这一边,也不坐在比特币反对者那一边。我写这篇文章的目的,是想提供一个比较中立的局外人的视角,从技术的角度,来探讨一下比特币的特点与问题,而这些,却是无论比特币的支持者还是反对者,都通常因为自身的立场而避而不谈的。)

基本上所有的比特币科普都本着一种语不惊人死不休的态度,与其说是在回答提问者的疑问,不如说是在试图通过一大堆概念性的叙述令提问者意识到自己的愚蠢于是醒悟自己问出了一个十恶不赦的问题从而放弃寻求解答。

例如:

问:比特币是什么。

答:比特币是一种去中心化的数字货币,拥有稀缺性、安全性、匿名性、透明性、免交易费、去中心等优点,是科技发展的重大进步,是下一个互联网,它必将成为人类在未来所使用的货币。

问:那么……它是一种货币咯?

答:它是一种如同黄金一般稀缺的物品,因此本身具有极高的价值。他天然优于政府发行的货币,因为政府发行的货币是政府控制的一言不合就能贬值,但比特币的价值是由密码学和稀缺性保证的,所以即便政府都不存在了比特币仍旧是保值的。

问:所以说,比特币能做什么呢?

答:你可以用比特币进行交易,就像用一般的货币一样啊——世界上已经有很多国家已经接受比特币进行支付了。同时,比特币用算法保证绝对安全,银行还可能被黑,用比特币支付安全无风险不需手续费,还可以完全匿名。

问:可是你说了半天还是没有说比特币是什么啊?

答:比特币是一群高技术高智商的技术人员和科学家搞出来的,涉及到很高深的密码学知识,说了你也不懂。总之你只需要跟我念:

安全透明无风险,稀缺恒定不贬值。

椭圆曲线保安全,工作证明防双花。

交易匿名去中心,账本透明都可查。

技术大牛都说好,民主国家全用它。

投资速买莫犹豫,早买显卡把矿挖。

当年披萨一万币,如今一币一万八。

互联之初不努力,徒管马云叫爸爸。

如今天降中本聪,信比特币保全家。

问:听起来为什么这么像传销?比特币是庞氏骗局吧。

答:呵呵。你这水平也就当一辈子屌丝了,我勉为其难再给你科普一遍,比特币是一种去中心化的数字货币,拥有稀缺性、安全性、匿名性、透明性、免交易费、去中心……

————————————————————————————————

那么看到这里大家一定会不满了——既然你说得那么轻巧你来介绍一下比特币呗。

窃以为,对于比特币的科普,大部分在知乎上的人都陷入了一个误区:

当你看到问题“比特币是什么?”“什么是比特币?”“比特币能做什么?”……的时候,提问者其实并不想知道这个问题的真正的,定义上的答案。他们并不想听到例如“哈希函数”,“工作证明”,“数字签名”等等术语。如果他们懂这些,那么比特币是什么他们随便上百科一搜就一目了然了。问出这种问题的人,这些术语在他们看来和“p2p金融”,“互助经济”,甚至“解冻民族资产”之类的没有任何分别。他们问这个问题的时候已经有了预设的立场,而他们的立场并不是站在技术的角度上的,而是投资的角度上的。他们关注的不是“比特币是什么”,而是“为什么是比特币”。他们的心声是这样的:

“你们先忽悠我养蚂蚁,又忽悠我投易租宝,这次又忽悠我投比特币?”

当然,如果他们单纯只是这样想的,那他们连这个问题都不会问,因为他们肯定也没养蚂蚁,也没投易租宝,更不会投比特币。

相反,问出这种问题的人,他们已经被铺天盖地的新闻和报道打动了,被比特币的价格曲线震惊了,被一大堆看起来不明觉厉的术语砸晕了。然后,其实他们真正想问的是:

“比特币到底是啥?到底有什么厉害的所以你们这么推崇它,它和你们之前吹的那些东西到底有什么不一样?我今天投了你们明天会不会又搞出一个xx币跟我说这个更屌让我投?我读书少,你们别骗我。”

于是,我觉得对于这个问题的最好回答,不是从技术的角度,而是从历史的,演义的角度来说——

很久很久以前,人们刀耕火种。

后来,人们结绳记事。

后来,出现了最原始的以物易物。

再后来,人们发现了以物易物太麻烦,同时,某种贝壳似乎比较稀少,于是,认同了它成为一般等价物……人们一手交贝壳,一手交货,这就是最原始的货币。

时间过去了几千年,互联网诞生了,人类进入信息时代。

从那时候开始,就不断地有人尝试在互联网上复制这种最原始的货币交易方式。

然而,他们全都失败了……

直到比特币。

从这个角度,比特币是什么呢?

比特币是人类在数字世界复制最原始的货币交易的所有尝试中,到目前为止,第一个接近成功的,也是唯一接近成功的一个。

————————————————————————————————

看到这里,我猜吃瓜群众们应该是这种表情:

“你当我们没用过Q币和淘宝吗?!”

可是仔细想想你就能发现Q币或者淘宝或者任何你能想到的数字世界的支付系统和原始的贝壳交易有着显著的不同——以支付宝为例,当你通过支付宝向卖家付钱的时候,实际上,你的钱并不是从你的手交予卖家的,而是支付宝通过银行从你的账户上扣一笔,然后转给卖家。

这就相当于,你想买张三家的石斧头,然后你去找了部落里最有势力的大哥李四作保,由李四出面去族长王五的部落账本上划掉你的两个贝壳划到张三头上。当然,如果你经常买东西你又信得过李四,你可以把钱不存在部落账本上,直接让大哥李四给你做主。然而,无论是李四还是王五,实际上,你并不能直接和张三交易。

这并不是因为如果你直接跟张三交易李四或者王五会来打你,而是,你会发现在虚拟世界,说服张三“你有钱”,“你的钱是真的”,“你的钱给了他”这几件事情无比困难。这个我们一会再说。

当然,你也可以说“这样不也很好么?这是更高级的交易形式啊,为什么非得用原始的贝壳交易的方式呢?”的确,加入一个第三方李四或者一个政府王五并没有什么不好,如果李四收的手续费不太贵,或者王五是个靠谱的族长,这些都不是事。反正,其实即便在现实社会,也早就没人用贝壳或者贵金属做交易了不是么?

然而,仍旧有一些无政府主义者和乌托邦主义者担忧——在现实社会里,至少,如果李四和王五都挂了,咱们还有贵金属,最不济还能捡可乐瓶盖。但在网络社会中,交易只能靠第三方,没有其他的任何选择……这事还是不靠谱啊!

怎么说,也得有一套替代的,允许人们自由交易的手段是吧,就算不是黄金,贝壳也行啊。

于是我们回到了之前的那个问题,假设没有李四,王五,你现在拿着一个数字货币,假设它是一个字符串,你要怎么跟张三做交易呢?

你:“张三,这串字符串是我的传家之宝,等于10个贝壳,你拿去吧!我要买你的石斧头。”

张三:

“你他喵的在逗我,你怎么证明这玩意是真的?”

你:

“这东西当然是真的不能再真的!用了最nb的加密方法,保证你用任何方式检测它都是千真万确的!”

张三:“好吧,那么首先,你怎么证明这是你的?我怎么知道你不是从别人那听来的?”

你:“你看这上面有我的数字签名。”

张三:“好吧,那么第一,我怎么知道你没和别人这么说过?第二,你怎么把这个给我?第三,我怎么知道你把这个给我之后不会拷贝一份然后和别人这么说?”

你:“且慢,容我考虑一下……”

这就是数字货币的第一个问题——任何现实中的货币和一般等价物,都有一个最基本的特点,是难以复制。而这种东西在数字世界是完全不可能实现的,因为无论用了多复杂的加密技术,如果是用货币的形式,那么无论如何都存在一个问题——如果某个代表着数字货币的字符串在某时某处能够被验证,那么同样的字符串经过同样的算法在另一个时间另一个接受者那里也能够被验证。也就是说,制造假币的成本,也就是一个ctrl+c和ctrl+v的事,这种货币系统显然是不可能实现的。

解决方案之一是放弃这种“数字现金”,而改用别的形式,例如余额。

你:“你看,这是我的余额,我有钱对吧!现在我把钱转给你,请查收。”

张三:

“你说你有钱你就有钱了?你的钱哪来的?”

你:“劈柴,打猎,打鱼挣的。”

张三:“每笔收入的证明呢?”

你:“喏,都在这了。”

张三:“你咋证明这些都是真的呢?”

你:“你看,我这里每笔收入呢,都有给我钱的人的签字。除此之外呢?我还用链子把他们链起来了。”

张三:“……”

这个链子,就是区块链这个词的由来了。要讲这个就要知道什么是哈希函数,哈希函数的概念一点都不难,上网一搜就有,所以我就懒得jiangle

你:“这个你就不用管了,你只要知道,这一大串的收入证明都是真的,因为我把他们用一种非常巧妙地方法链在一起了。我随便更改其中的任何一个字,链子就断了,你就能看出来我修改过了。你可以检查下。”

张三:“太长不看。”

你:

张三:“不管别的了,你就把你打鱼的钱给我就好了。”

由此可见,采取余额的记账方式,在有中心的情况下更加明了,因为中心已经完成了对每笔交易真实性的校验,因此后来的交易者只要查找你是不是有余额就好了。可是,对于这种去中心化的交易而言,不如采取交易的记账方式来得方便。例如在这种情况,如果采取余额,那么张三需要验证你的每笔收入与支出对比,算出余额然后再决定是不是卖给你石斧。这样的话,还不如你直接告诉张三,“我用打鱼的钱买你的斧子,这是我收钱的凭证”。

看到这里大家已经看出来了,这就是比特币采用的交易形式,“未使用的收入作为支出”。

你:“这是我打鱼收入的证明,这是船主给我钱的凭证,我把这个钱转给你,我签个字,你以后可以以这个为凭证花这笔钱,这该没问题了吧。”

张三:“好吧!这是石斧。”

于是你终于拿到了石斧头。然后你突然想起来你家里还缺个骨刀,于是你找到赵六。

你:“赵六,我想买你的骨刀。”

赵六:“好啊,五个贝壳,你有钱吗?”

你:“这是我砍柴赚的五个贝壳……”

等等!

好像有哪里不对!

你猛然想到了一个问题——

你打鱼也收了5个贝壳啊!

你把钱转给张三了,可是赵六不知道啊!

那么你刚才跟张三说的话,放在赵六这一样有效啊!

所以,你说:

“不好意思刚才说错了,这是我打鱼挣的5个贝壳,这是我的凭证……”

这个问题,就是数字世界臭名昭著的“双重支付”问题。

而这个问题,归根结底,又回到了最早的信息复制的问题——同样一笔钱,同样一个交易,同样的证明,复制成两份,如果两个人遵循同一套规则去验证的话,那么,其中一份有效,另一份也理应有效才对……

除非,这两个人互相通信,知道你把同样的证明复制了两次。

例如,你去赵六家,发现张三也在,这个时候你要是敢跟赵六说同样的话,那么保准张三和赵六合起来把你暴揍一顿。

可是,谁又能保证张三正好也在呢?

另一个可能是,有个人恰好知道,把这事告诉了赵六。但是怎么保证你每次做交易,不一定是赵六,还可能是薛七神马的,都恰好能够知道你之前是不是先拿同样的凭证做过交易了呢?

有一个解决办法——你每做一笔交易都去李四或者王五那报备,然后每个人在跟你做交易之前也先去李四或者王五那查查你的交易记录,那么事情就解决了。

然而,这又回到老问题上了——我们不想通过李四或者王五啊。

这个时候,你灵机一动,想到了最后的,釜底抽薪的大招——

“你们不就是怕我作弊么?老子每做一笔交易都到村子里广播一下,这你们总不会担心我作弊了吧!”

众人摇头:“不——行——!”

你:

众人:“我们的时间很宝贵,没空整天听你广播,万一你广播我们没收到怎么办?”

“那我每做一笔交易去你们每家挨家挨户告诉你们总行了吧!”

众人还是摇头。

“万一你骗我们咋办?我咋知道你去每家都说的是啥?”

“你们不会问问你们邻居么?”

众人继续摇头:“我读书少,万一你和张三(李四)(王五)(赵六)(薛七)一起合谋骗我怎么办?”

以上,就是这个故事里最核心,也是最复杂的问题了。可以叫做“分布式共识问题”,或者叫做“拜占庭将军问题”。问题的核心就是,在一个人与人都不信任的环境,想要让所有人都认同你说的某件事,难如登天。

这事不能解决么?

能,很早很早以前就解决了。

那为啥不用?

因为效率太低了——解决方法是每做一笔交易,所有人都得跑到村中央开个小会。

——————————————————————————————————

关于石斧头的故事,咱们先讲到这。

回到最早的那个问题,相信现在大家已经有所了解了——在数字世界里复制现实社会中几千年前人类最原始的交易形式,实际上是个极其困难的问题,原因就在于数字世界的东西不像现实世界,太容易复制了。

比特币是唯一的尝试吗?

并不是。

几乎以上“你”在网上买石斧所犯过的一切错误,我们在现实社会中都犯过——高飞币,财奴币等一大堆你连名字都没听过的数字货币,都是这段漫长的摸索之中的失败品。

但失败并不是没有收获的——

和“你”一样,人们发现了“交易到交易”的账本是最适合的形式,发现了双重支付是最大的问题,发现了想要去中心,必须建立分布式共识,而要建立分布式共识,就得解决拜占庭将军算法的效率问题……

人们在这一步卡了很久。

直到中本聪用一个很天才的想法解决了这个问题。

首先,除了共识问题之外的方面,他都采取了和“你”一样的方案——相信看了前面的故事,大家应该对于比特币的“交易记录来表示的货币形式”,“哈希函数和链式结构来保证账本完整性和真实性”,以及“用一个共识算法来防止双重支付”这样的结构已经没有疑问了。这不是比特币和中本聪故弄玄虚忽悠大家的设计,他并不是故意要把一个简简单单的电子支付搞得那么复杂,而是,和要买石斧的“你”一样,也和所有尝试开发数字货币的人们一样,这是最优的,最自然而然不过的选择了。

其次,他巧妙地引入了惩罚与奖励机制,简单地说,就是“说话有代价,撒谎需谨慎”以及“谁诚乖就给谁糖”的机制。成功地实现了一个能够应用于上万节点的共识机制——工作证明,也就是挖矿。

有了这个,数字货币的最后一个难点被攻克了,这也是为什么我说“比特币是人类在数字世界复制最原始的货币交易的所有尝试中,到目前为止,第一个接近成功的”的原因。

再次,这个系统的建立在“价值”——“算力”——“可靠”这么一个三角的平衡之上,缺失任何一个角都会导致整个系统失效。而比特币,恰恰是现在所有公有链系统里,在这三点上都远超其他系统的一个。这也是为什么我说它是“唯一一个接近成功的”。

我相信,这应该能够终于回答“什么是比特币”的疑问了——我们真的不是在忽悠你,不论比特币好坏与否,是否真的值那么多钱,该不该去买显卡,至少,比特币是真东西,也的确是第一个,也是唯一的一个,虚拟世界最接近最原始的“货币”这个概念的东西。

然后,至于具体为什么它是“第一个和唯一的一个”,我们下篇再说。