区块链是什么鬼?我想说的是有90%的IT人都不知道什么是区块链,特别是它能带来什么?因为本人就是在一家有上千技术人员的IT公司,说到区块链大家的反应基本上是:啊最近这个报道挺多的,好象是什么高大上的技术,听说是分布式的,能不能用到Fintech上呢?是不是可以替代MySQL数据库啊?
这里抛砖引玉,欢迎大家展开联想。
区块链的名词解释就不多说了,百科上有的是,谷哥百度随便一搜就好,往下看前最好先做点基础阅读。不过真想要理解还真不容易,网上的报道感觉都是想搞个大新闻,对于想究根问底的IT人来说用处不大,看论文,那密码学的东东又把人引入另一个技术深渊;玩玩比特币,那经济学家都弄不明白的货币政策能把人绕晕。
所以这里想通过通谷易懂的类比的手法,跟IT人聊聊什么是区块链,主要是它的意义,本人接触区块链半年多,非专家,缪误难免,不过最喜欢大家来批判讨论。OK,ACTION...
做IT多少懂点电脑以及它的历史,就它了,我要说区块链就相当于电脑里的那块硬盘,这是一种狭义的说法,如果看报道的话,里面说的区块链指的是装有硬盘的电脑,这是广义说法。但在以下说到区块链,我是说狭义的说法。
一台大电脑
由于互联网把全世界联接起来了,可以把全世界看成一台大“电脑”,互联网是这台电脑的“主板”是数据总线,可是在区块链(相当于硬盘)之前,这是一台没有持久化存储的设备的电脑,类似90年代的8086机器甚至是单板机,很原始的那种。稍微先进一点的是这台“电脑”可以有很多终端,大家通过终端屏幕和键盘可以同时使用同一台电脑。由于没有持久化存储(硬盘),每次来上机几乎都要从零开始,这点太烦人了,记得当年学校上机时(APPLEII),刚敲完一个游戏代码进去玩没几分钟就下课了,下次课又得从头敲。互联网刚开始时也是没有存数据的,如ICQ是不负责存聊天记录的,后来的QQ才存了聊天记录,这相当于“电脑”升级了一点,可以用自带磁盘了,QQ这种土壕还把自已的磁盘挂上去给大家用,当然先提是你要用QQ这个软件才行,不过QQ说我这磁盘空间有限只保留最近一年的记录数据,而且要是哪天土壕闹情绪,把磁盘一拔,大家的数据就全没了。很快做银行的这些个大土壕也出手了(互联网金融),他们各自把磁盘往上一挂,说大家都来我这开户吧,你的账户数据就存我这了,我这用的是3寸盘,比QQ那5寸盘安全多了。云计算云存储这个超级土壕也来了,我这容量超大速度超快(相当于硬盘吧),大家随便用。可是再大的土壕也有没落的时候,大小只是没落的机率不同而已(没听说过银行挤兑风波吗?),到时土壕一拔磁盘,大家就血本无归啊。得找靠谱点的土壕,最好是老师(ZF)能管教到的,到时找老师闹一闹多少能要回点本钱。
于是有人说咱们不能这样下去了,光靠土壕太让人郁闷了,咱们大家不都有磁盘吗,咱们自已存数据好了;张三说,不行吧?我这程序得访问李四的数据才能跑,要是李四没来上机咋整?这时有个网名叫中本聪的同学开发了一套“区块链”的技术,解决了这个问题,基本套路是大家磁盘上都要存一份一模一样的数据,对这份数据大家都有相同访问权限,这样就不用纠结别人上没上线了。为了保证这份数据的安全,区块链要求这份数据只能追加不能更改更不能删除,有点类似于磁带这种顺序写的设备,不同的是可以随机读;同时为了写安全,要求所有写进去数据前要所有参与的同学用一段公认的代码校验过才行,但所有同学不可能都同时在线,所以实际上是由一名同学写进去,然后同步给其他同学;为了防止某些同学恶作剧改代码乱动数据,这名负责写数据的同学是不确定的,是通过一个算法定期抓阄决定,写完以后还要同步给其它同学进行校验,是不是抓到阄的同学写的。抓到阄的同学还能获得一定量虚拟币(比特币)的奖励。
区块链的技术特色是分布式,去中心化,平等开放访问,这些先不展开了,有兴趣的同学去看看中本聪同学的论文。
一个良心网游
其实一开始只是中本聪和他的几个好同学在用,后来大家觉着好玩,有点象个网游,还能打装备(挖矿比特币),于是大家就玩开了,参与的人越来越多。有一天有人找到一个开批萨店的玩家,说我用一万件装备换你一个批萨吧,于是成交了第一笔线下交易。这下不得了,因为比特币一开始就限定了2100万个的上限,而且越来越难打装备了,是象黄金一个稀缺的东东,于是同学们相互借点小钱的时候,也用装备(比特币)做抵押,甚至直接拿来卖钱了,后来这种黑市都在这“电脑”上公开了。在这群玩游戏的同学里这装备(比特币)那是扛扛的硬通货啊,因为这游戏是真正的“装备全部靠打”(借用某网流广告语),不象某些土壕出的游戏,那游戏策划就是天天想着怎么坑你钱,一言不合就印钞票,打的装备天天在贬值。银行这些土壕还好点,毕竟老师对他们盯得紧,而且学校饭堂认可他们的装备(RMB)可用来打饭买菜,可饭堂也有苦衷,各种小店竞争激烈,时不时也要超发一轮装备来缓解一下。
钱这东西很容易招贼,各种坑蒙拐骗防不胜防,老赖多不胜数,这时区块链显示他的好处了,因为数据只能追加不能改,而且这账本谁都能看得到,想赖账是不可能的。对于喜欢签合同的同学更有一项优势,你可以把合同的执行逻辑写到这份数据里,而且只要有满足条件的数据出现,就能自动执行合同,当然这合同也跟其它数据一样只能追加不能改,大家都能看到,合同违约后的强制执行一直是法院都没法100%保证的事,在区块链里就不是个事,抓到阄的同学的代码一定且必定会按合同忠实地自动执行,这就是所谓智能合约。
去中心化
再说MySQL,NOSQL这些数据库的差别,这些都是只能存储访问自已磁盘上数据的工具,管理的是私有的数据,区块链管理的是共享的数据。要说把MySQL的数据库访问接口共享不也一样嘛?这是土壕的套路,区别是大家心里有没有底啊。
有人说这里说的区块链明明是磁盘嘛,怎么是硬盘了呢?硬盘可认为是“电脑”里不可(不轻易吧)拆卸的部件,即使只有你一个人上机也能看到全部的数据,几乎是永久保存的数据。这里比喻是用的是磁盘介质,但是加持了区块链技术后其特性也相当于不可拆卸的完整的永久保存的,起到了现在硬盘的作用。当然磁盘契硬盘比,访问速度和容易都差得很多,这也是如今区块链的毛病。
那电脑升级有了硬盘,是不是区块链就没用了呢?否!因为区块链技术非常强调去中心化,这个圈子对土壕(权威,中心)是嫉恶如仇,硬盘虽是计算中心负责维护比较靠谱,那也是中心,总比不了在自已磁盘上的数据令人安心,这段时间不是一堆云盘被封。另外还有个特性是硬盘比不了的,去中心化后区块链的数据可以用“野火烧不尽,春风吹又生”来形容,安全性级高,就算整个世界的电脑都崩溃了,只要还有一张磁盘在,就可以在电脑恢复后的几个时内遍地重生。比如本校的电脑关机维护了,可以带上磁盘到其它学校去用,以后还可以回来再继续用,这是硬盘比不了的,可以说区块链上的数据是打不死的小强。
不过去中心化也有问题,比如两个学样的电脑上同时有人写数据,把别校的磁盘带回本校后发现数据有冲突(数据链分叉),以哪个为准呢?是个难题,目前的解决办法比较粗爆,哪个磁盘上写的次数多就以哪个为准,其它的作废。于是有人想打这个的坏主意了,一件装备两边卖,最后只有一边会成功,相当于改历史数据了,只是成本比较高,要买很多上机票来拼命地写数据。然而这招被中国班的一群实诚的发烧友给破了,由于该班为学校建机房出了不少力(建水电等基础设施),给打了很大折扣(电费便宜),他们就拼命地收集上机票来打装备卖钱,搞得80%的上机位(三大矿池80%算力)都掌握在他们手中,他们花了不少成本打了一大堆装备可不想让人搞破坏,要知道只有掌握51%以上的机位才有可能作弊。
虚拟机
中本聪的比特币玩的人越来越多,影响大起来,其它同学深受启发,然后开发出更快一点,容量更大一点的区块链网络,比较有名的如莱特币。特别是有个叫以太坊的平台,它把智能合约这块做得更强大了,可以支持非常复杂的合同,它上面打的装备叫以太币,号称是区块链2.0版(这个是不是类似于U盾了?研究不深,待定)。这些个装备现在有个统一的名称叫数字货币。利用这些货币数据,还开发了不少工具以方便同学们使用,比如数字钱包,方便不懂技术不怎么会玩的同学来进行支付。
有数据存储(区块),有运算能力(智能合约),有输入输出(区块链应用),这些组合起来,就有点虚拟机的味道了。比特币虚拟机,莱特币虚拟机,以太坊虚拟机,它们都是建立在互联网这台宿主电脑里,虚拟机内部自成体系,虚拟机之间,虚拟机与宿主机之间在底层完全隔离,只有通过应用层的输入输出经过严格检验后才能互通,是松耦合关系。
银行清算
各家银行各有各的账本存在各自磁盘里,如果是同一账本里的账户间转账,银行自已记完账务数据就完成了;但跨行转账就出事了,银行A的张三(账户)要转1块钱给银行B的李四(账户),两个银行的磁盘都得记账才行,但银行B决不信任银行A让它来写自已的磁盘,这样吧,银行A写个证明有这笔交易盖上钢印,银行B验证这个证明后自已写到磁盘里记李四的账,后来这个证明电子化了变成交易数据包,还有银行用纸钞发行了现金,张三存到银行A的现金也得交给银行B啊,要不李四来取钱银行B可拿什么给啊。就是这个证明出了很多鬼,证明传递中丢了,被伪造,记重复了,所以后面还得进行每天对账;对账完后,还得算算银行A得银行B转交多少现金,完了还得运钞车给运过去,这过程大家它叫清算。够麻烦的吧,这还没完,银行有很多家啊,每两家银行间都得建立信任然后清算,一张大大的蜘蛛网,所以后来出现了清算中心机构(如银联、人行、SWIFT)帮忙清算,但是各银行要给清算中心交保证金(头寸),每笔交易还要收手续费,具体细节还有很多,这里不多说了,反正挺复杂又麻烦还不安全容易出错成本还不小,过程复杂了少不了还要多等几天,客户体验真是不好。
那么,所有银行都只用一个账本不就好了吗?但是这账本存在哪个银行的磁盘上,别家也不放心啊,万一他跑路,全世界就完了;给老师(ZF)管磁盘?就算老师能且愿意干这活,别的班的老师(国家)也不放心吧。放比特币那磁盘上?打不死的小强还支持记账,可他们有自已的贷币也只支持一个账本,银行没法发行自已的贷币记自已的账啊。把他们的技术(区块链)学了,咱们银行联合起来自己搞一个虚拟机,我的地盘我作主,于是一个叫R3的联盟成立了。