首页 百科 查看(kàn)内容
  • 8161
  • 0
  • 分享到

区块链是(shì)什么(me),一文让你看懂区块(kuài)链的(de)本质?

2018-2-5 23:30

重回“区块”和(hé)“区块(kuài)链”的世界

好了,对小纸条和交(jiāo)易记录的研究我们点到为止(zhǐ),其实(shí)信息量已经是巨大的了(le),让我们合上盖(gài)子,重回较(jiào)大实体、继续聊聊“区块”和“区块链”的话题(tí)。还记得,咱们在一(yī)开始讲到关(guān)于区块的特征吗?区块创造后(hòu)被(bèi)埋在地下,需要经过节点们马不停(tíng)蹄的挖采、而(ér)且是凭运(yùn)气的挖(wā)采(cǎi)才有可能获(huò)得——不仅(jǐn)仅如此,事实上(shàng)他还有其他很(hěn)多(duō)神奇(qí)的地方,比如说:

  1. 凭空产生的区块在(zài)刚(gāng)刚(gāng)创建(jiàn)的时候会形成一股强(qiáng)大(dà)的黑洞(dòng)效(xiào)应,它(tā)会尝试(shì)将这(zhè)段时间全世界各个(gè)节点上(shàng)产生的所有(yǒu)小纸条(交易记录)统统吸进来;在合上区块盖子之前,同时会在区块内放上一些数字(zì)货币(bì)以及其他(tā)一些东西。
  2. 区块拥有一个唯一(yī)的ID,但它只(zhī)会在这(zhè)个区(qū)块被节点成功从地下挖出来之后(hòu)创建。这个ID至少会跟「区块(kuài)内(nèi)所有小纸(zhǐ)条的集合」、「即将与之相连的上一个区块ID」以及(jí)「挖矿节点的(de)运气(qì)值」等因素相关。既然前面我(wǒ)们已经简单(dān)了解了“Hash()函数(shù)”这个(gè)东(dōng)西,这里不妨透(tòu)露给大(dà)家(jiā):“区块(kuài)ID = Hash(‘区块内所有小纸条的集合’+’即将与(yǔ)之相连的上一(yī)个区块ID’+‘挖矿节(jiē)点的运(yùn)气(qì)值(zhí)’+’…’)” ;基(jī)于先前掌握的知识,然后(hòu)你应该知道区(qū)块内(nèi)任(rèn)意(yì)一(yī)张(zhāng)小纸条(tiáo)的(de)信息稍微(wēi)做改动、或者节(jiē)点(diǎn)挖矿运(yùn)气好一点坏一点(diǎn)等等,当前区(qū)块的ID都会 “ biu~ ”的发生改变。

基于上述1、2点,如果阅读足够(gòu)仔细的同学可能会有些(xiē)头(tóu)大。在(zài)文章开头为了更好的描述,我在设计简化区块链系统的时候(hòu)故意模棱(léng)两可了几个概念,这也许已经误导到了部分同学。这(zhè)里不得不停下来和你一起修(xiū)正下之前在你大(dà)脑中已经构建的区(qū)块链世界观。我们前面讲(jiǎng)道,“在节(jiē)点的视野里,大概每十(shí)分(fèn)钟(zhōng)会凭空产生一(yī)个建立在(zài)自(zì)己平行宇宙世界的神奇(qí)区块”。如何正确去理解这句话呢?——拥(yōng)有上(shàng)帝之眼的你,可以(yǐ)这么拆解问题、看(kàn)待问题(tí):

  1. 同一个周期内,全网并不是产生唯(wéi)一的一个区块等待挖掘;每个节(jiē)点事实上(shàng)都在周期性的创造区块和(hé)挖(wā)出区(qū)块;只是在某一个节(jiē)点的(de)视野(yě)里,它(tā)不能感知(zhī)到另外一个节(jiē)点上区块的产生。为何(hé)这里要特别强调“在某一(yī)个节点的(de)视野里”,就是因(yīn)为我们刚刚(gāng)讲到,从区块(kuài)的视角来(lái)说,区块的凭(píng)空产(chǎn)生(shēng),是基于(yú)即将与(yǔ)之(zhī)相连的上一个区块ID;而从节(jiē)点的视角来(lái)看,区块的凭空产(chǎn)生(shēng)是基于当前节点区块链(liàn)末尾的那个区块ID产生的。
  2. 全网会尽力控制在(zài)一个周期内(nèi)只有(yǒu)一个节点能够成功挖出区块,但是不能(néng)够完全避免多个节点同(tóng)时挖出区块的可能性;如何尽(jìn)力控制?比如说(shuō),当大伙挖矿的热情(qíng)高涨、工(gōng)作(zuò)效率提高,区(qū)块会被(bèi)埋在更深(shēn)更广的地方等。简而言之(zhī),通过(guò)提高工作难(nán)度,来维持(chí)这个(gè)平衡。另外(wài),值得注意的:产生区块、挖出区块、校验区块(kuài),他(tā)们的时间周(zhōu)期近乎相同。
挖矿(kuàng),本(běn)质(zhì)是通(tōng)过与(yǔ)或运算,去碰撞一个(gè)出(chū)一个满足规则的随(suí)机(jī)数(shù)。这个部分要细讲(jiǎng)的话(huà),估计又可以写(xiě)出两三千字来(lái)。我(wǒ)觉得到(dào)目前为止(zhǐ),并不影响主轴知(zhī)识点的讲解,这(zhè)一块会作为(wéi)后(hòu)续知识结构的完善(shàn)被撰写(计划1月24日前完(wán)成(chéng))。感兴趣的同学可以Google百度(dù)查阅下什么叫“挖矿”、“工作量证明 POW”等。


分叉

现(xiàn)在,我们终于对“区块”这个(gè)概念有了更全面的认识,文章(zhāng)开头讲的故(gù)事就可以继续展开来絮叨絮叨:

假如几乎同一时间(jiān),「中国上(shàng)海浦(pǔ)东新区张衡路」上的节点和「美国纽约曼哈顿第五(wǔ)大道」上(shàng)的节点异口同声喊出来:“我挖到区块了(le)!里面的小纸(zhǐ)条都是有(yǒu)效的!奖励归我!”。其他节点(diǎn)也(yě)几(jǐ)乎同时参与了对这两个区(qū)块(kuài)的(de)校验,结(jié)果发现这俩都没(méi)毛病,各(gè)节点也开始犯困,因为在他(tā)们的(de)视野里他(tā)们并不(bú)清楚(chǔ)最后哪一个区块应该会被主链接纳。算了!都连在(zài)自己区(qū)块(kuài)链尾巴(bā)上吧,这(zhè)时尴尬(gà)了,区(qū)块链(liàn)硬生生的被分叉(chā)了!

千亿体育登录网站(中国)集团有限公司

产(chǎn)生分叉

你肯定在想(xiǎng),那还(hái)得了,这种情况继续(xù)下去,每个节点的(de)区块以及他们整理维护的小纸条都将变(biàn)得(dé)不一样,这已经(jīng)严重违背(bèi)了区块链世界里第一大最基本原则——所有节点共(gòng)同维护同一份数据。所以,为了解决这(zhè)个(gè)问题,区块(kuài)链世界引入(rù)了(le)一条(tiáo)新(xīn)的规则——拥有最多区(qū)块的支(zhī)链将是(shì)真(zhēn)正被(bèi)认可有价(jià)值(zhí)的(de),较短的支(zhī)链将会被直接Kill掉。

我们大伙都知道挖矿的过程存在(zài)巨大的(de)工作量(如果没有任何(hé)难度,把(bǎ)区块扔在人群(qún)中,必然同一(yī)时间发现(xiàn)区块的节点数量将大大增(zēng)加(jiā),也就会产生无数的支(zhī)链(liàn),通(tōng)过这个例子,你大概也就(jiù)能够明白,区块链(liàn)世界为什么需要设置工作难度了吧),并且在计算机的(de)硅基世界里,不可能出现(xiàn)所谓 “同时(shí)” 的概(gài)念,哪怕纳秒的差别,那也(yě)总是会有先后顺序。所以理(lǐ)论上,“分叉(chā)”的这种(zhǒng)僵局很快会在下一个区(qū)块被(bèi)挖掘出来(以及(jí)校验区(qū)块)的时候被打破,实(shí)在不(bú)行下下个,或者下下下个……总之机制(zhì)可以(yǐ)让(ràng)整个分(fèn)叉的区块链(liàn)世界迅速稳定下来。

千亿体育登录网站(中国)集团有限公司

“分叉(chā)”这种僵局在确认下一个区块(以及(jí)校(xiào)验(yàn)小纸条)的时候被打破(pò),从而整(zhěng)个区块链世界迅(xùn)速稳定下(xià)来

就上图(tú)而言,所有基于(yú)张衡(héng)路节点挖矿(kuàng)获得(dé)的区(qū)块(kuài)以(yǐ)及后续区(qū)块的那条分支被视为有(yǒu)价值,最终会(huì)全(quán)部(bù)保留(liú)了下来;其他节(jiē)点会统一(yī)效(xiào)仿那个拥有更(gèng)长分支链的节点所(suǒ)做的决策。另外,值得一提的(de)是,同一(yī)时间,较短分支(zhī)上的区块会立即丢弃,而里面的小纸(zhǐ)条也会随之(zhī)释放(fàng)出(chū)来,被重新标记(jì)上(shàng)“未(wèi)确认”。

“双花”与“51%攻击”

你可能(néng)已经(jīng)开始困惑或者(zhě)有点兴奋,末尾几个区块的排序在修复过程中,因为(wéi)时间差肯定会产生一(yī)些模棱两可的地方,这往往会给数据安全(quán)埋下一颗雷。一个最简单的(de)假设(shè)——我记录(lù)的一张小纸条很不巧地被归在了(le)一条较短的支链上,这条支链在竞争过程中理所当然输掉了比赛,区块被丢弃、小纸(zhǐ)条(tiáo)被无情的贴上“未确认(rèn)”的标签。在(zài)等待下次区块重新确认的过程中,这个时间差内,我,好像、似乎可以做点什么坏事(shì) ԅ(¯﹃¯ԅ) ,就比(bǐ)如(rú)说“双花”(双花(huā),花两次,双(shuāng)重支(zhī)付的(de)意思)


你脑海中也许很(hěn)快浮过的这样的构(gòu)想(xiǎng),可不可能通过下面这(zhè)种(zhǒng)方法触发双(shuāng)花问题的产生(shēng),从而(ér)让我不劳(láo)而获:

千亿体育登录网站(中国)集团有限公司

  1. 假设有一个名叫X-Man的坏家伙(huǒ),他(tā)控制(zhì)了一个计(jì)算机(jī)节点(diǎn),这个节点拥有(yǒu)比地球上任何一个节点(diǎn)算力都强大的(de)计算机集群。
  2. 首先,X-Man事先创造了一(yī)条(tiáo)独立的(不去广而(ér)告之)、含有比较多区块的(de)链条。其中一(yī)个区块里放着“X-Man转账给X-Man 1000元”的纸(zhǐ)条。
  3. 接着(zhe),X-Man跟张三(sān)购(gòu)买了一部手(shǒu)机,他在小(xiǎo)纸条(tiáo)上记录下“X-Man转账给张三1000元”;这条信息被三次确认(rèn)后(即(jí)三个(gè)区块被(bèi)真实(shí)挖出、校验和连接),然后,张三把手机(jī)给了X-Man。
  4. X-Man拿到(dào)手(shǒu)机之后(hòu),按下机房的开关,试图将先前已经创造的区块链条连接在自己这(zhè)个节(jiē)点区块链的末尾。
  5. 大功告成,X-Man拥有了一条更长的区块链条,那些(xiē)较短、存放着“X-Man转账给张三1000元(yuán)”的区块链,以及在区块(kuài)链(liàn)世界里那则(zé)真实转账行为被一同(tóng)成功销毁。(?)

事实真的如(rú)此吗?在这里我可以很负责任的说,too young too simple,区块链世界规则的制定远比我们想象的要健全很多,还记得我们之前讲的“区(qū)块的ID至少会跟区块(kuài)内(nèi)所(suǒ)有小纸条的集合、即将与之相连的上一个区(qū)块ID以及挖矿节点的运气(qì)值(zhí)等(děng)因(yīn)素相关”。 在(zài)这里,正(zhèng)是因(yīn)为(wéi)打算连接到主链的时(shí)候,事先准备(bèi)的链子(zǐ)会意识到马上要(yào)连接上的那个区块ID发生了改变(biàn),随之而来的是后面所有区块(kuài)ID都瞬间。节点不得不重(chóng)新对后续(xù)区块的解锁以及对区块内小纸条(tiáo)的校验。

千亿体育登录网站(中国)集团有限公司

在区块(kuài)链(liàn)的世界,重新计(jì)算的行为(wéi)等(děng)同于把自己(节点(diǎn))置身于同一个起(qǐ)跑线,跟世界上其他所有的(de)节(jiē)点一同竞争挖矿。你会说,我拥有(yǒu)更(gèng)强大的计算能力,但是对不起,跟你竞(jìng)争的(de)对象(xiàng)并不是第五大道、南(nán)京(jīng)西路、香(xiāng)榭丽舍大道(dào)上的某一(yī)个节点,而是全球所有算力(lì)的(de)集合(hé),在这个集合(hé)中,你(nǐ)拥有的算(suàn)力永(yǒng)远都只是一(yī)个很小的子集。所以,根据区块(kuài)链算力民(mín)主、少数服从多数的基本原(yuán)则,这个构想将永远不会成立。

除非....

你控制着全球(qiú)51%的算力,这也就(jiù)是区块链世界里另外一个(gè)著名的概念,叫做“51%攻击”,但这(zhè)也仅仅是一个理论值,在真实世界(jiè)里这样的攻击(jī)我个人觉得是很难发(fā)动起(qǐ)来的,这里面(miàn)就牵涉到很多(duō)经济、哲学(xué)甚至(zhì)政治的(de)因素。举(jǔ)个最简(jiǎn)单的例子(zǐ):X-Man为(wéi)了回滚刚刚发生的一笔交易记录,成功发起了51%攻击,这意味着很快整个区(qū)块链系统将会崩(bēng)盘,因(yīn)为这次攻击已经严重伤害到人们对(duì)这(zhè)套系统(tǒng)的(de)信任,接着比特币开始暴跌至几(jǐ)乎一文不值;但是这个拥有51%算力的X-Man原本完完全全可以通过挖矿的方式获取更多(duō)收益,购买(mǎi)无数(shù)的iphoness手机(jī)。那他不是脑(nǎo)袋不是坏了(le)还能是啥?对51%攻击(jī)话题感兴趣的同学可以阅读这篇文章《什么是(shì)比特币51%攻击?》。

至(zhì)此,我(wǒ)觉得区块(kuài)链最基础、最核心的(de)知识已经全部讲完了(除了挖矿内部实现原理,作为一(yī)个遗憾留(liú)在这里,有时(shí)间会完善掉),相信你(nǐ)已经对它有了一个宏观的认(rèn)识。另外(wài),由于这篇文章采用了适当抽象(xiàng)、类(lèi)举的(de)叙事方式,中间或多(duō)或少有些地方会跟区(qū)块链底层(céng)严谨的技术实现有出入,欢迎(yíng)大家来纠错(cuò)。另外,也(yě)是受限于自己(jǐ)知(zhī)识结构的缺失,这篇文章会随着我对区块(kuài)链更深(shēn)入(rù)认识后,随(suí)时进行(háng)修订,最后(hòu)更(gèng)新时间可参考该(gāi)回答下方(fāng)的(de)时间(jiān)戳(chuō)。

千亿体育登录网站(中国)集团有限公司
版(bǎn)权申明:本内容来自于互联网,属(shǔ)第(dì)三(sān)方汇集(jí)推荐(jiàn)平台。本文的版权(quán)归(guī)原作者所有,文章言(yán)论不代表链门户(hù)的观点,链(liàn)门户不承担任何法律责(zé)任。如有侵权请联(lián)系QQ:3341927519进(jìn)行反馈。
相关新闻
发(fā)表评论

请先 注册/登录 后(hòu)参与评论

    回顶部

    千亿体育登录网站(中国)集团有限公司

    千亿体育登录网站(中国)集团有限公司