区块链初识

区块链初识之神秘面纱:
自从区块链这两年火起来之后,陆陆续续被很多人问过相同的问题:最近听说区块链很火,区块链到底是啥?比特币是什么,怎么才能获得比特币?区块链到底能干嘛?
基于想给很多非圈内人普及一下区块链的基础知识,让大家了解区块链到底是什么?再加上最近接触了一个叫初链-TrueChain(后续会讲)的东西,给予了自己一点小小的动力,因此,有了今天的博文。
不管怎样,先来一段官方的解释的插图(看不懂没关系,可以自行跳过):
这里写图片描述
从拆文解字来看,区块链分为区块+链两个部分,那么区块是怎么形成的,又是如何把这些区块串在一起形成链的?从官方概念来看,区块链有几个鲜明的特点,那么什么是分布式账本,什么是去中心化,这么样做到不可篡改?以及什么是比特币?带着这些疑问来开始我们今天的话题:
为了给大家有个感性的认识,先给大家讲几个故事:
故事一:丈母娘招亲的故事
从前,在一个叫舒城的小国,里面住着一位非常富有的女国王,她有很多个貌美的女儿。有一天,她的这些女儿长大了,该出嫁了。于是,她昭告全国开始公开选女婿,成为女婿的条件只有一个,那就是解出她给出的谜语。如果给出了谜底,就可以带走其中一个女儿做老婆,并且还可以获得丈母娘的50两黄金作为嫁妆。
告示一发出,全国上下的单身狗纷纷开始行动,拿起算盘开始解谜。没过多久,终于有一位叫LJ的聪明男子给出了第一个答案。他领走了其中一位女儿小黄,并获得了50两黄金的嫁妆,而此刻丈母娘也告诉其他正在解谜的单身狗们,这个女儿已经被领走了,然后大家公认小黄就是LJ的老婆了。并且丈母娘也会为这个小两口做一个公证,记录一下小黄出嫁的时间,同时邀请其他的单身狗做一个见证,并要求LJ这辈子只能爱小黄一个人至死不渝。从此,LJ和小黄过上了美满的生活。而其他的单身狗们又开始投入到解谜游戏中。以后,每当有谜语被解出的时候,就会有女儿出嫁,就会有一个单身狗得到50两黄金的嫁妆,同时其他的单身狗们也会做一次公证,并记下那个女儿出嫁的时间和嫁给了谁。
很快,有一半的女儿都被领走了,丈母娘觉得是不是之前出的谜语太简单了,而且发现竟然剩下的这些单身狗通过技术改造他们的算盘,能提高计算的能力。因此,丈母娘提高了谜语的难度,并且嫁妆由之前的50两黄金减半成25两黄金。于是,新一轮的猜谜娶亲活动又如火如荼的展开了……
故事二:拜占庭将军们的故事
拜占庭帝国也叫东罗马帝国,其首都就是现在土耳其的君士坦丁堡,当时叫君士坦丁堡即拜占庭。说到拜占庭帝国,那在西方历史书上可是占有很大的篇幅。由于拜占庭罗马帝国国土辽阔,国王君士坦丁十一世除了建了一座坚不可摧的城墙以外,还分派了十个将军去攻打围绕在周边的十个部落。在那个时候,所有将军和副官必须达成一致的共识,决定是否有赢得机会才去攻打敌人的阵容。可是每个军队都分割很远,将军与将军之间只能靠信差传消息。
军队内部有可能存在叛徒和敌军的间谍,这时候,在已知有成员谋反的情况下,其余忠诚的将军在不受叛徒的影响下如何达成一致的协议,拜占庭问题就此形成。这10个邻邦统帅将军互相并不是信任(存在叛徒)时,这种状态下要保持进攻一致,需要某种分布式协议来进行远程协调。如果每位将军向其他九位将军派出一名信使,总计需要90次传输,每位将军会收到9条信息,可能每一封都附着不同的内容。这个系统变成了不可靠信息和矛盾的混合体,于是每一方都小心行事,不敢轻易相信对方。
终于,1453年4月6日,奥斯曼土耳其帝国的穆罕默德二世发现了这个漏洞,将其各个击破,最终毁灭了拜占庭帝国。
故事三:桃花源记的故事
话说,东晋时期天上有一位神仙下凡来,法号叫中本聪。他没事就喜欢游览人间的山山水水。这一天,他走着走着看见了一个山洞,穿过山洞竟然发现了一个遍布桃花的小部落,于是流连忘返。
他发现在这个部落里,大家都过着最原始的生活,老张家有一袋面粉,老李家有一只羊,于是老张就可以拿面粉去和老李换羊。物物交换是大家日常生活。但是并不是每次老张需要羊的时候,老李也恰好需要面粉,有时候老李可能需要布匹。于是,老张废了好大的劲到处打听,终于发现老王需要面粉,并且老王手里有老张需要的布匹。终于老张用面粉换来了布匹,又拿布匹去换了老李手中的羊。
终于有一天,人们觉得这样以物易物实在太不方便了,大家开始开会讨论如何解决这种矛盾。老部落首领提出可以用黄金作为中介媒介,所有的物品先兑换成黄金,然后黄金可以兑换所有的商品。这下,终于方便了很多,只要先把手中的东西换成黄金,再拿黄金去换任何东西就可以了。
但是,好景不长。大家发现部落里面的黄金越来越难挖了,而且金子总会不断磨损,还会有丢失的情况。于是,有人提出,黄金只是在中间做了一个媒介,其实完全可以用纸来替代,在纸上面写上“一两黄金”,只要部落的人认可这张纸等同于一两黄金问题不就解决了么。但是这个纸也不能随便谁都能写,不然就乱套了,大家都回家写字,只要笔和纸足够,搞不好到时候好几万张纸才能买一只羊。所以,大家推选出了德高望重的老部落首领来写字,因为大家都认识老首领的字体,这样问题就解决了。于是,大家把家里的黄金都按照重量从老首领那里换成了纸,一两黄金实物换来了老首领手里的一张写了“一两黄金”的纸。当需要黄金的时候,大家可以拿纸去老首领那里兑换黄金,纸破损的时候可以到老首领那里销毁并让老村长重新写一张。从此,部落进入了货币时代,老首领则扮演了中央银行的角色。
部落里繁衍生息了几十年,终于有一天,老首领一命呜呼驾鹤西去。老首领的儿子,二蛋,接替了老首领的任务,上任之后的第一个任务就是要把之前老首领写的纸回收,再由自己写一套等值的纸来发行。但是这个任务量太大了,也非常麻烦,二蛋非常聪明,他想了一个点子,把所有的纸币都回收起来,但是他会记录下每个人手里的纸币数量。以后,大家只要有交易需求,给二蛋打个电话就行,老李从老王那买了一头羊,双方给二蛋打电话确认。假设一头羊价值一两黄金,二蛋就会从老李的账户减去一两黄金,然后把老王的账户加上一两黄金。从此,部落进入了无现金时代,二蛋把他的账本取名为支付小宝宝。
这二蛋聪明是聪明,但是聪明有时候会被聪明误。二蛋心想,这整个部落的账本都在自己手里管着,那岂不是自己可以……于是,二蛋悄悄的把大熊家的二十克黄金划到了自己的账户下,同时也对老刘做了这样的事。本以为这么点黄金大家应该察觉不到,可是没想到大熊有自己记账的习惯,这下一对账,东窗事发了。这下部落可炸开了锅了。二蛋被弹劾是肯定的了,但是通过这件事大家发现完全依赖于首领这种承担中央银行角色的信用是不可靠的,但是又找不到解决方案。
眼看着整个部落快维持不下去了,中本聪站出来了,他提出,大家可以采取他发明的完全不用依赖任何中央处理人的比特币虚拟货币系统,可以解决上述问题。
他提出对现有账本进行改造,账本上不再只是记录余额,而是记录每一笔交易的具体信息,如金额、收款人、付款人等,并将交易按时间顺序排好方便查看。这种记账的好处在于,每个人都可以看到账本的信息,并且约定好了只要交易完成了就不能修改了,为了保证隐私性中本聪给每个人发了两件宝物,一个是二维码生成器,另一个是二维码扫描器。从此,部落进入了比特币交易时代。
假设现在二狗子要支付给三娃子10个比特币,那么二狗子要先从三娃子那里获取一个二维码,假设叫“ABC”,二狗子自己也会用二维码生成器生成一个二维码,假设叫“EFG”,告诉三娃子。然后写一张单子给三娃子,内容为“EFG3月8日支付10个比特币给ABC”,同时将这条记录放到公共账本3月8日的交易单里面。三娃子拿到这个单子之后,为了确认是二狗子支付的,他会拿出二维码扫描器扫描一下,发现单子上确实显示的是二狗子告诉他的“EFG”,那么这笔交易就被三娃子认可了。然后大家也可以在公共账本里看到这笔交易。
区块链初识之追根求源:
通常面对行外人问我区块链的时候,我都会从这三个故事中挑选出一个讲给他们听,试图用最通俗最直白的语言把区块链表达清楚。不论是哪一个故事,都是在试图描述两件事:第一个是区块链的五大特点:去中心化、信息不可篡改、公开透明、集体维护和可靠数据库,第二个是区块链的三大保障:共识机制、智能合约、非对称加密。那么这三个故事到底哪些内容体现了区块链的特征呢?下面分别带大家剖析一下:
故事一中,所有去征婚的单身狗们共同维护一张去中心化的账本;上面记录了一条条已经猜出谜底的单身狗的信息,包括猜出谜底的时间、单身狗的信息、娶走了哪个女儿等,这些信息都是公开透明的;而且是经过大家公证的,每队成功匹配的男女婚姻关系的记录都是大家一起维护的;而且这些答对谜底的单身狗都承诺相亲相爱至死不渝,也就是关系不能篡改了;这种关系的记录是非常可靠的,因为要想改动这种关系,必须使至少一半以上的单身狗都否认他们的关系,才能颠覆既定的关系,而这种可能性几乎不可能。
故事二中,拜占庭将军的问题,在于没有一套共识的机制和约定,只靠信使来传递信息必然使得各方互相猜忌,最终被敌人攻破。如果才用非对称加密的方式去传输信息,那么就会使得信息更加可靠。
故事三中,描述了区块链中最火爆的比特币是如何形成的,经历了物物交换时代、一般等价物时代、货币时代、无现金时代、比特币时代。当然在中本聪解决桃花源货币问题的过程中,也体现了区块链的各种特征:如每个部落成员共同维护一个去中心化的账本,上面的信息不可更改又公开透明,大家对于往账本上记账达成了统一的共识,并且通过二维码生成器和二维码解码器的非对称加密技术保证了可靠性和隐私性等等。
区块链之深度解析:
经过上面感性的认识之后,再来探讨区块链,相信大家会更加清晰一些。不会像一开始一样,百度或者谷歌一下什么是区块链、比特币,看完之后还是一脸懵逼。
区块链,英文 Blockchain,本质上是一种去中心化的分布式数据库。任何人只要架设自己的服务器,接入区块链网络,都可以成为这个庞大网络的一个节点。
区块链既然本质是数据库,里面究竟存储了什么东西呢?让我们来了解一下区块链的基本单元:区块(Block)。
一个区块分为两大部分:
1、区块头
区块头里面存储着区块的头信息,包含上一个区块的哈希值(PreHash),本区块体的哈希值(Hash),以及时间戳(TimeStamp)等等。
2、区块体
区块体存储着这个区块的详细数据(Data),这个数据包含若干行记录,可以是交易信息,也可以是其他某种信息。
注:对于哈希值,可能有些朋友不知道是什么意思。你可以拿MD5来做类比,MD5就是典型的哈希算法,它是一种可以把任意长度的明文通过函数转化成一串固定长度(128位)的字符,这个字符串就是哈希值。
不同的区块之间通过哈希值和前哈希值联系在一起,因而形成了区块链。其实看起来就像数据结构中的链表。
解释完区块链之后,必然大家关心的就是比特币,以及如何挖矿了,别急,慢慢给大家解释:
所谓挖矿,简单的说,就是计算最新数据的哈希值,生成新区块的过程。
既然区块链是一个链状结构,就必然存在链条的头节点(第一个区块)和尾节点(最后一个区块)。一旦有人计算出区块链最新数据信息的哈希值,相当于对最新的交易记录进行打包,新的区块会被创建出来,衔接在区块链的末尾。
新区块头的Hash就是刚刚计算出的哈希值,PreHash等于上一个区块的Hash。区块体的Data存储的是打包前的交易记录,这部分数据信息已经变得不可修改。
用于进行海量计算的服务器,叫做矿机。
操作计算的工作人员,叫做矿工。
外行人看来,计算哈希好像很简单,可是为什么那么多人都说挖矿难呢?
因为计算哈希的过程并不是一次简简单单一次运算,是需要海量尝试性的计算才能得出的
Hash = SHA-256(最后一个区块的Hash + 新区块基本信息 + 交易记录信息 + 随机数)
其中,交易记录信息也是一串哈希值,它的计算涉及到一个数据结构 Merkle Tree。有兴趣的小伙伴可以查阅相关资料。
这里关键的计算难点在于随机数的生成。猥琐的区块链发明者为了增大Hash的计算难度,要求Hash结果的前72bit必须都是0,这个几率实在是太小太小。
由于(最后一个区块的Hash + 新区块基本信息 + 交易记录信息)是固定的,所以能否获得符合要求的Hash,完全取决于随机数的值。挖矿者必须经过海量计算,反复生成随机数进行“撞大运”一般的尝试,才有可能得到正确的Hash,从而挖矿成功。
同时,区块头内还包含着一个动态的难度系数,当全世界的硬件计算能力越来越快的时候,区块链的难度系数也会水涨船高,使得全网平均每10分钟才能产生出一个新区块。
小伙伴们明白挖矿有多么难了吧?需要补充的是,不同的区块链应用在细节上是不同的,这里所描述的挖矿规则是以比特币为例。
区块链之后事如何?
由于时间的原因,对于区块链的介绍就写到这里,先带大家入个门。
虽然区块链看上去好像很高大上,但是从长远来看,它到底能不能成为下一个技术领域的一个风口,还是个未知数。
本人看来,区块链目前还仍然属于一种不成熟的技术,处于萌芽阶段。即便是以太坊、火币网这种圈内做的还不错的应用,到今天为止技术上仍然有很多的问题。除了被炒火的比特币以外,其他的应用也只能是围绕着私有链和联盟链做做文章,真正的公有链目前还没有。
另外,任何脱离应用场景的技术都是瞎扯淡。就我目前了解的市面上区块链的应用来说,要么就是打区块链的擦边球,其实换句话说不如说是物联网,这一点IBM做的比较靠前;要么就是拿区块链的技术去炒作概念,找一些不懂的人去融资,拿到钱之后走人;要么就是炒虚拟币,可能现在大多数都是在做这件事,我曾经接触过一些做区块链应用的公司,但是最终了解过后,其核心还是在炒虚拟币。
能否通过技术的革新,使区块链的技术瓶颈得以突破;能否使区块链技术真正的为解决社会或者民生问题提供解决方案;能否使区块链应用真正的达到千万日活等等,都是有待所有的区块链爱好者以及研究人员去探讨和深究的课题。
当然,现在市面上存在两派:一种是比特币信仰派,当然另一种则是区块链质疑派。无论哪种派别,都有他们的道理,对于一个新生物种来说,从质疑到被选择,再到最终的存货或者灭亡都是事物发展的规律,且让我们拭目以待,看区块链到底会走向何方?
关于区块链的其他知识,之后我会再发文讲解,今天就到此为止。
——金刚不换

发布了1 篇原创文章 · 获赞 0 · 访问量 204
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览