浅浅浅浅浅谈区块链

先郑重的发个检讨,春节前就软硬兼施的磨来了这篇文章,燃鹅却拖了这么久才发,向浅谷童鞋说声抱歉。当然更令我心痛的是这个热点已经有点凉了(脑补浅谷画外音:毛线,我的心灵创伤还没热点重要嘛)

首先,非常荣幸再次被阿婆主邀稿。然后,要致个歉,本人实在是拖延症晚期,才把稿子拖到月末最后一天这个不能再拖的时候才开始动笔。(看到这句我都惭愧了,有木有+_+)

阿婆主这次给我的命题作文是“区块链”。说实话,对于区块链,我也是一脸懵逼的。所以,今天这篇文章,与其说是分享,不如说是共同学习。我们以比特币作为切入点,因为它是区块链的第一个应用,也是最成功的一个应用。势必,在比特币上,我们可以以一种生动又具体的方式去看区块链

比特币诞生

2009年,中本聪在芬兰赫尔辛基的一个小型服务器上创建了比特币的第一个区块——创世区块,并获得了首矿奖励——50个比特币。由此,拉开是数字货币时代的帷幕,世界上也多了一种职业,名为“比特币矿工”。

那么为什么会出现比特币这种系统呢?或者说比特币系统解决的是什么问题呢?首先,解决了交易双方的互信任的问题,交易不需要再依托受信机构作为中介,而是可以由一方直接支付给另一方。其次,在无中心受信机构的情况下,解决双重支付问题,即保障了A无法使用同一笔资金既支付给B,又支付给C。

那么比特币是如何做的呢?比特币创建了一种共同记录、共同验证的机制。在以传统受信机构作为中介的场景中——以银行为例——当A要给B支付10块钱的时候,银行会执行查询A余额、减少A的余额、增加B的余额、记录交易等操作,那么在这个过程中,银行形成了它的中心化账本。所有的交易由它说了算。而在比特币系统中,所有的节点会对整个系统中产生的所有交易进行记账。当A要给B支付10块钱的时候,首先所有的节点会共同在自己的账本中查询A的余额,并开始记账,但是由于记账是件具有唯一性的操作,所以只有一个最优秀的节点可以记录这笔交易。一旦有节点记录了这笔账目,系统会将这笔记录同步给所有节点,从而保证每个节点的账本都是最新的。

在这种机制下,我们来看如何避免双花。当然,这里有个前提,是我们的记账节点已经足够多,能够形成成体系的记账网络,而不是只有零星的几个人在记账。双花,即要伪造账目,有两个机会,一个是让第一个记账的人伪造账目,从而向所有节点传播假的账目,另外一个是说服所有(当然在比特币体系中,51%即可)节点伪造账目。我想,难度不言而喻。因此,当所有人都把A支付给B10块钱记录在账本中时,A再也无法将这10块钱支付给C,因为系统中的所有节点都无法认可这笔交易。这件事变成了 mission impossible 。

那么现在问题又来了,我们去哪找到这么多人来做记账这件事呢?毕竟大家工作都挺忙的。不得不说,中本聪这位同志深得“无利不起早”的精髓,于是,他在比特币系统里设定了激励机制,甚至衍生出了竞争机制。比特币,实际上,就是用来奖励这些记账的人的,第一个在账本上写下交易记录的人,将获得奖励,这也是比特币的发行方式。

比特币与区块链

现在,我们尝试下从比特币中抽象出区块链的故事。

那么实际上,区块链是记录关于某一主题的所有动作的记录本,它具有公开、透明、共享的特点,它可以被任何人掌握,却不能被任何人控制。区块链上的每一个区块,是一个动作或者是操作。而这个区块只能由一个特定的人挂到区块链上,而谁是这个特定的人,取决于区块链创始人制定、参与人认可的规则,即共识。

再聊一下如果我们想要把区块链应用在我们的业务中,我们需要考虑哪些事情?我认为最核心的是共识机制验证机制

共识机制:即区块链网络中的所有节点凭借怎样的规则来对操作的先后进行认定,也可以说是一种确定谁能够创造区块的方式。在比特币中,无数矿工耗费无数资源所争夺的就是这个创建新区块的权利。因此,比特币中的共识机制,是一种基于计算力的工作量证明方式,谁投入的计算资源多,谁就能够创建新的区块。

验证机制:区块链网络中的每一个节点在监听到新的区块产生时,会对其进行正确性验证。如果正确,则继续传播,直到所有节点都收到并且验证。

至此,今天的浅浅浅浅浅谈区块链原本应该结束的。但是,我认为有一盆冷水还是应该提前泼一下,也请大家以理智的思维看待区块链的发展。首先,区块链也有缺点。我们不难看出,区块链确实保障了业务无法被篡改,同时也极大的限制了业务的回退场景。也就是说,一旦A给B打钱,然后A发现自己打错了,实际上想要给C支付。然鹅,A将再也无法从B那儿把这笔钱撤销回来。另外一点,是关于各种币的投资,笔者也曾经有过上车的冲动,然后被一句话点醒,“不懂不投,不要跟风”,所以请大家谨慎上车,不要成为比特币市场的韭菜。

“站在风口猪都能飞起来”,但很不幸,不是所有猪都能找到风口

筱字

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180331G1I1MJ00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券