Contents

说来惭愧,从自己知道比特币,买比特币到现在也有三四年了吧,我也是最近才认真地看完了它的白皮书。可能也是因为这个原因吧,虽然我相信它有价值,但是也不敢说自己是“坚信”。所以,这也是我并不敢花太多钱去买它的原因,即便当时比特币才 3000 元人民币左右。当时就想着万一它成了,就留给儿子吧。

比特币的白皮书 (https://bitcoin.org/bitcoin.pdf) 其实才短短 9 页,最后一页还是参考文章列表。可在这短短的 8 页里,中本聪却能非常清晰明白地说明,比特币是用来解决什么问题,里面使用的每个技术是为了解决其中哪部分问题,为什么。整个论文的论述是非常自洽的。最重要的是,他不是从技术出发,而是从业务问题出发,再论证每个使用的技术如何解决局部问题,最终实现了目标。

我尝试来解释一下这个自洽的论证是如何做的。

比特币是什么?

无须依赖中央金融机构,点对点的电子货币交易系统。

  • 中央金融机构有什么问题?

    跨国支付,尤其是小额支付,成本,等待时间太高,覆盖范围也受影响。支付可行性,灵活性受限于此中央金融机构。

  • 那为什么我们还需要中央金融机构?

    不考虑假钞的前提下,面对面的金钱交易才能解决交易双方的信任问题。但是,在线和跨地区的电子交易,必须交由可信的第三方中央金融机构监督,才能保证卖方确实收到买方的钱。因为中央机构可以确保买方承诺支付的钱,不会也不能同时给另一个人。这也就是所谓的杜绝“双花(double spending)”问题。

  • 如何可以不通过中央金融机构,也能防止“双花”问题呢?

    要防止“双花”,就必须知道支付方的所有出入账记录。所以,如果不通过中央金融机构监管,那就是每个人的每一笔交易记录,都必须广播给其它所有人知道,由此可以让大家都一致认定每笔交易,和它们的先后顺序。账本的公开,也就是让每个人都可以承担记账的功能,通过分布式来代替集中式。

  • 谁做的交易统计才可信?

    由于每笔交易都广播给全世界知道,但每个人接收到的广播信息,还是可能会有偏差的,因为分布式的网络是不稳定的,每个人也不确定是否确实收到了所有的广播。或者,中间有人作假,甚至联合作假怎么办?这里就需要引入一种共识机制,也就是记账的人要遵循的统一的规则,来确保什么样的记账才算数。

  • 共识机制是什么?

    比特币系统选择的是工作量证明(POW)。每一个记账方,都需要按特定的算法一直做数学运算,直到算出来的值,是符合约定的某种特定规范,它才可以把之前一直接收到的有效的交易数据,统计打包(生成一个 block),然后向外公布。一但某个记账方,收到了其它记账方的交易统计(block),它就要停止手上的计算,验证这个统计的正确性,并加入到账本(blockchain)最末尾。这里有个很特别的地方还包括,每一个 block 会有自己的 Hash 值(计算机术语,可以理解为唯一的指纹),而且它还和上一个 block 的 Hash 有关。

  • 为什么这种机制保证安全和公平?

    首先,这种数学运算有统一的规则,需要拿上一个 block 里定的某个随机数来做下一次的计算。这里既有透明的规则,又有随机成分,没有人可以提前算出一批结果,参与的人只需要贡献他们计算机的算力,相对公平。

  • 有人垄断算力怎么办?

    如果有记账方很有钱,它占有整个网络很多的算力,是不是就能比其它记账方,算的快呢?这个算法还有一个特点,就是如果发现 block 生成的速度变快,还能自动调节难度,让计算更复杂,减慢 block 生成的速度,大概维持在 10 分钟左右一个。

  • 速度慢还有什么好处?

    前面提到,分布式的交易记账,不同的记账方,是有可能有偏差的。导致的结果是,你接收到的 block 信息,也有可能和其它人不一致。也就是一条交易统计链,从全世界角度来看,可能会有几条不同的分支。那么,最终是以哪条为准呢?链最长的那条。所以,每个记账方,除了记录自己正在记账的链,还要记录公布出来的其它链的信息,一但发现某条链越来越长,它就应该切换到最长的链去接着统计。block 生成速度慢,加上随机性的存在,就不至于让算力垄断方,那么容易生成最长的链。要一直维持绝对优势,需要比别人超出很多算力。

  • 真的值得作假吗?

    假如真的有人具有垄断性的优势,真的值得作假吗?首先,交易数据的结构设计,使得它只可能修改自己的交易记录,把自己的钱偷回来,它是没法偷别人的钱的。而且,要修改记录,由于前面提到的,每个 block 都是有各自的 Hash,还包含了上一个 block 的 Hash。也就是说,它修改了某一个 block 的数据,就要把后面所有的 block 都改掉,篡改记录的成本是很高的。最后,作为一个诚实的记账者,只要能争取算出正确的值,生成 block,就能获得一定量的比特币奖励。所以,如果某个记账方,或者黑客,真的拥有垄断性的算力,那它是用来争取获得奖励划算些,还是尝试偷回自己那么点币划算些呢?

以上的每一个点,都环环相扣。每个技术的使用,都有特定的考量。所以,为什么说比特币是区块链上的第一个有真正价值的应用,真不是说说而已。

反观,现在一些项目介绍和白皮书,堆砌了各种名词技术,吹的天花乱坠,只是说能干嘛,但是为什么需要用到这些技术,怎么使用它来解决某个问题都没说清楚。只是泛泛地说它的共识算法要更先进,吞吐量高,不耗电等,更别说有没有解释清楚这个项目为什么非得用区块链来解决了。

还有,很多公司做的所谓“区块链”项目,我感觉都是营销噱头,包括网易星球,和这两天刷朋友圈的淘宝弄的麻吉宝等。这些项目,和普通的导流,积分系统有啥区别?为什么要用区块链?用户怎么知道你用了区块链没?除了项目方自己外,谁还 host 了节点保证记录没那么容易被篡改?一些公司动不动就说自己用区块链技术,给用户带来信任,因为它不可篡改。可是它们根本不知道在什么情况下才不可篡改。

比特币虽然有缺陷,但是更多的项目还都是渣。

Contents