2018-2-5 23:30
比特币采用区块链技术(shù),但是区块链并不等同于比特币;全篇基于比特币底层区块链技(jì)术讲述,所以,部分模(mó)型可能(néng)不适用于以太坊等。另(lìng)外,由于文章(zhāng)采用(yòng)了一定的抽象、类(lèi)举的叙(xù)事方(fāng)式,中间或多或少有些地方会跟区(qū)块(kuài)链底层严谨的(de)技术实现有出入,如果(guǒ)让你觉(jiào)得困惑,可以在评(píng)论下方(fāng)留言或者私信我一起探讨。最后,也是受限于自己知识(shí)结构(gòu)的不完整,这篇(piān)文章会随着(zhe)我对区块(kuài)链(liàn)更深(shēn)入认(rèn)识后,随时进行(háng)修订,最(zuì)后(hòu)更新时间可参(cān)考该(gāi)回答下方(fāng)的时间戳。
首(shǒu)先不(bú)要把区块链想的过于高(gāo)深,他是(shì)一个分布(bù)在全球各地、能够协同运转(zhuǎn)的数据库存储(chǔ)系统,区别于传统数据库运作——读写权限掌握在一个公(gōng)司或者一个集权手上(中心化的特征),区块链认为,任(rèn)何有能(néng)力架(jià)设服务器的人都可以参与其中。来自全球(qiú)各地的掘金者在当地部署了自己的服务器,并连接到区块链网络(luò)中,成为(wéi)这个分布(bù)式数据库存储系统中的一个节(jiē)点;一旦加入,该节点享(xiǎng)有同其他所有节点完全一(yī)样的权利与义务(去中心化、分布式的特征)。与此同时,对于在区块链上开展服务的(de)人,可以往这个系统中的(de)任意的节点进行(háng)读写操(cāo)作(zuò),最后(hòu)全世界所有节点会(huì)根据某种机制的完成一次又依次的同步,从而实(shí)现在区块链网络(luò)中所有(yǒu)节点的数据完全一致。
我(wǒ)们(men)反复(fù)提到区块(kuài)链是一个去中心化的系统,确实,「去中心化」在(zài)区块链世界里面是一个很重要的概念,很多模型(比如(rú)账本(běn)的维(wéi)护、货(huò)币的发行、时间(jiān)戳(chuō)的(de)设计、网络的(de)维护、节点间的竞争等等等等(děng))的设计都依赖于这个中心思想,那到底(dǐ)什么是去中(zhōng)心化(huà)呢?在解(jiě)释真(zhēn)正(zhèng)去中心化之前,我们(men)还是先简单(dān)了(le)解下(xià)什(shí)么是中心化吧。
中心化?
回(huí)忆一下你在网上(shàng)购买一本书的流程:
你会(huì)发现,虽然你是在跟卖(mài)家做交易(yì),但是,所有的关键(jiàn)流程都是在跟支付宝打交道。这样的(de)好处在于:万一(yī)哪个环节出问(wèn)题,卖家(jiā)和买家都可(kě)以通过支付(fù)宝(bǎo)寻求帮助(zhù),让(ràng)支付宝做出仲裁。这就是一个最简单的基于中心化(huà)思维(wéi)构建的(de)交易模型,它的价值显著,就是建立权(quán)威,通过权威(wēi)背书来获(huò)得多方的信任,同时依赖(lài)权威方(fāng)背后的资本(běn)和技术实力确保数据的可靠安全。
你(nǐ)一定会摆出一(yī)个(gè)巨大的问号脸 ⊙.⊙?——“通(tōng)过权威背书来获得多方的信任,同时依赖(lài)权威方背后的(de)资本和技术实力确(què)保数据的可靠安全”,真的(de)可以嘛?!
假如说,支(zhī)付宝(bǎo)程序发(fā)生(shēng)重大BUG,导致一(yī)段时间内的转账记录全部丢失,或者更彻底(dǐ)一点,支付宝的服务器被金三胖的一个(gè)导(dǎo)弹全部炸(zhà)毁了。而我刚刚转出去的100元找谁说理去,这个时候,你就成了刀殂上的鱼肉;支付宝有(yǒu)良心,会勉为其难(nán)承认你刚刚转账的事实,但他不承认你(nǐ)也没辙(zhé),因为确实连他自(zì)己也不知道这笔转账是否真实存在(zài)。
上(shàng)述就是(shì)中(zhōng)心化(huà)最大的弊(bì)端——过分依赖中心(xīn)和权威,也就意(yì)味着(zhe)逐渐(jiàn)丧(sàng)失自己的话语权。
去中心化?
那么(me)去(qù)中心化的(de)形态是什么样子呢?还是拿刚才(cái)那个例(lì)子继续,我们(men)构建(jiàn)一个极简的去中心化的交易系统,看看我们(men)是(shì)如何在网络上(shàng)从(cóng)不认识的卖家手里买到一(yī)本书(shū)的。
刚才“人为刀俎(zǔ)我(wǒ)为鱼肉”的情况(kuàng)在这个体(tǐ)系下(xià)就比较难发生,因为所有(yǒu)人的账本上都有着(zhe)完全一样的交易(yì)记录,支(zhī)付宝的账本服(fú)务器坏(huài)了(le),对不起卖家的(de)账本还存在,我(wǒ)的账(zhàng)本还存在;这些都是(shì)这(zhè)笔交易真实发生的(de)铁证。
当然,在这套极简的(de)交易系统中,你已经发(fā)现了诸(zhū)多漏洞和不(bú)理解,比(bǐ)如(rú)说三方当中有(yǒu)一个是坏人,他故意记(jì)录了对他(tā)更有利的转账信息怎么办;又比如说消息(xī)在传递(dì)过程中被黑客篡(cuàn)改了怎么办等等等等。这在以往的计算机概论或者(zhě)计算机网络书本上中可能都(dōu)有提及到(dào)——“类两军(jun1)”和“拜占庭将军”问题。这里就不打算赘述,因为暂时跟(gēn)主线不相关,感(gǎn)兴趣(qù)的同学可以(yǐ)去Google或者(zhě)百(bǎi)度一下,你只需要知道,在我们下面即将展开讲到的区块链系统中,通过巧妙的设计,足以解(jiě)决(jué)上述(shù)存在的BUG。
既(jì)然(rán)话已说到这份(fèn)上,相信了解一(yī)点技术(shù)、特别是有运维背景的同学大概能(néng)够从(cóng)极简交易系统中窥(kuī)视到了更(gèng)多(duō)区块链的一些影(yǐng)子——
在我看来,你猜测的基本上没错(cuò)。其实这些就是区块链技术最核心的东西,外人看(kàn)起(qǐ)来高大上、深不可测,但探究其根本发现就是这(zhè)么简单和(hé)淳朴。当然,这里面肯定(dìng)会有很多很多很多细枝末节的技术需要重构(gòu)。
如果你(nǐ)差不多认同上面的观(guān)点,那我们应该(gāi)基本上可(kě)以(yǐ)达成(chéng)共(gòng)识,分布式部署(shǔ)肯定是构(gòu)建去中心(xīn)化网络(luò)理所当然的解决(jué)方向——通(tōng)过P2P协议将(jiāng)全世界所有节点计算机彼此相互连接,形成(chéng)一(yī)张密密麻麻的(de)网络;以(yǐ)巧妙的机制,通过节点之间的交易数据同步来(lái)保证全(quán)球(qiú)计算机节点的数据共享和(hé)一致。
哈哈,说的轻巧,“交易数据这么重要的东西,在一个完全不信任的P2P网络(luò)节(jiē)点(diǎn)中以一种错(cuò)综复杂的方式(shì)传递,数据的一致(zhì)性和安(ān)全性谁来保证,如果说互相监督,他(tā)们到底怎(zěn)么做到?”
好了,不卖关子了,下面让(ràng)我们围绕这个最最(zuì)最最直(zhí)接的问题开始进入到真(zhēn)正区块链(liàn)的世界(jiè),抽丝剥茧(jiǎn)看看它到(dào)底(dǐ)是如何(hé)一步一步形成的,又是如何一步一(yī)步稳(wěn)定运转。