雖然近日國內(nèi)將各類ICO的金融騙局一刀阻斷,但并不妨礙區(qū)塊鏈技術(shù)的蓬勃發(fā)展炸客〖部茫總歸技術(shù)是無罪的,是可以給人們帶來福利的痹仙,至于怎么應(yīng)用那都是人來操作的是尔。好的操作可以推薦發(fā)展,壞的操作就像各大ICO項目一樣开仰,找一些知識網(wǎng)紅進(jìn)行所謂的非法集資拟枚,金融詐騙。
說了半天區(qū)塊鏈?zhǔn)鞘裁茨刂诠恳徽f起區(qū)塊鏈很多人第一個想到的就是比特幣恩溅,我們需要搞清一個問題,比特幣是區(qū)塊鏈谓娃,但區(qū)塊鏈不是比特幣脚乡。簡而言之,區(qū)塊鏈?zhǔn)且环N分布式賬本技術(shù)(DLT,
Distributed Ledger Technology)滨达,而不是某一種代幣奶稠。他自身包含了俯艰,去中心化、可追溯锌订、不易篡改等多種特點(diǎn)蟆炊。
(一)區(qū)塊鏈?zhǔn)且粋€分布式數(shù)據(jù)庫
首先,這是一個去中心化的瀑志,分布式架構(gòu)的系統(tǒng)涩搓。所以,只有一個中心服務(wù)器或節(jié)點(diǎn)的不叫區(qū)塊鏈劈猪。舉個例子昧甘,如果你去淘寶買一個手機(jī),你和賣家都是陌生人战得,是沒有任何信任基礎(chǔ)的充边。如果你先把錢給了賣家,賣家很可能不發(fā)貨把你拉黑常侦,那你就損失了手機(jī)錢浇冰。如果賣家先發(fā)貨你在付費(fèi)呢?很可能你收到貨了不給賣家打錢聋亡,所以怎樣都可能有一方損失金錢肘习。這時候需要有個第三方來擔(dān)保,來解決信任的問題坡倔,就像現(xiàn)在的支付寶一樣漂佩,你把錢打給了支付寶,賣家會發(fā)貨罪塔,等你收到貨了投蝉,賣家才會收到錢。
上述這個例子是一種中心化的系統(tǒng)征堪,因為所有的擔(dān)保工作都是由第三方支付寶來負(fù)責(zé)的瘩缆,假設(shè)支付寶有一天想要篡改數(shù)據(jù),無論是買方還是賣方都是無能為力的佃蚜,因為所有的權(quán)限都在一家公司手里庸娱。
這時候就需要分布式的數(shù)據(jù)庫了,這個第三方不在是支付寶爽锥,而是成千上萬的監(jiān)聽者涌韩,當(dāng)你在淘寶購買手機(jī)時,你會向所有人大喊氯夷,我要向XXX買手機(jī)了臣樱,并且我支付了XXX元。對方也會像所有人吶喊,我收到了XXX的手機(jī)費(fèi)雇毫,并且進(jìn)行了發(fā)貨玄捕。這樣所有人都知道了這筆交易,所有人都在記錄這筆交易棚放,那么其中一兩個節(jié)點(diǎn)出現(xiàn)問題枚粘,或者有惡意行為都是沒有效果的,因為多數(shù)節(jié)點(diǎn)記錄了這件事請飘蚯。
(二)區(qū)塊鏈用密碼學(xué)技術(shù)保證數(shù)據(jù)安全性
這里面包含兩個重要的點(diǎn):1馍迄、密碼學(xué)哈希函數(shù)2、非對稱加密
具體的概念有興趣的可以去百度一下局骤,不過沒有基礎(chǔ)的人百度可能也無法看懂的攀圈,因為這兩點(diǎn)都過于專業(yè)化了,其實只是了解區(qū)塊鏈的應(yīng)用的話不需要對此有太深的了解峦甩,本身也是技術(shù)類的概念赘来,只需要知道區(qū)塊鏈依靠這些技術(shù)點(diǎn)可以保證數(shù)據(jù)的安全性,不易被篡改凯傲。當(dāng)然也有很多人說依靠這兩點(diǎn)可以保證100%不被篡改犬辰,這里我還是保守一下,身為一個游走在安全行業(yè)的筆者冰单,始終對100%安全性抱有懷疑的心態(tài)幌缝,所以稱之為不易被篡改可能更為恰當(dāng)。
我還是簡單介紹一下這兩個概念球凰,盡量大白話說明白狮腿。
1宣吱、密碼學(xué)哈希函數(shù)
這個主要用來驗證信息完整性的德崭,比如我給公司的領(lǐng)導(dǎo)發(fā)了一條信息欲险,上面寫的是,周五生病甩挫,需要請假休息一天,這時會根據(jù)我發(fā)的信息生成一個哈希值椿每,比如是:123456伊者。這個時候領(lǐng)導(dǎo)收到了這條信息,也會生成一個哈希值间护,因為我發(fā)的信息內(nèi)容沒有變化(未被篡改)亦渗,所以哈希值不變,還是:123456汁尺。這是如果有人想篡改這條信息法精,改成了周五生病,需要請假休息一年,這時候哈希值會改變搂蜓,比如變成:123489狼荞。這時候我們就知道,我們的信息被篡改了帮碰。
2相味、非對稱加密
主要用于信息加密和身份驗證,其實就是兩把鑰匙殉挽,一個叫公鑰丰涉,一個叫私鑰。公鑰加密斯碌,私鑰解密昔搂。
公鑰就是大家都擁有的鑰匙,你擁有输拇,我也擁有摘符,我們都可以用這個鑰匙進(jìn)行加密,但是解密的時候必須用我的私鑰進(jìn)行解密策吠,如果你沒有我的私鑰逛裤,你就無法進(jìn)行解密。
(三)區(qū)塊鏈采用共識算法來對于新增數(shù)據(jù)達(dá)成共識
共識算法的作用猴抹,就是讓所有節(jié)點(diǎn)對于新增區(qū)塊達(dá)成共識带族,換句話說,所有人都要認(rèn)可新增的區(qū)塊蟀给。
對于集中式部署的系統(tǒng)蝙砌,這事很簡單,一切由中心所控制跋理,但是放在區(qū)塊鏈這個分布式系統(tǒng)中就很復(fù)雜了择克,比如有3個節(jié)點(diǎn),A說我買了XXX店的手機(jī)前普,并且已經(jīng)付費(fèi)了肚邢,B說我沒有付費(fèi),C說我付的不夠拭卿,那到底聽誰的骡湖?更何況區(qū)塊鏈技術(shù)并不是3個節(jié)點(diǎn)這么簡單,而是一個龐大的分布式系統(tǒng)峻厚。
這時候就需要一種解決方案响蕴,計算機(jī)科學(xué)里有個相應(yīng)的問題,叫做“拜占庭將軍問題”或者“拜占庭容錯”(BFT)惠桃。這個問題當(dāng)年被提出并不是因為比特幣浦夷,而是因為一些特殊的背景懊渡。
早期的飛機(jī)里有三套獨(dú)立的控制系統(tǒng),為什么需要三套獨(dú)立的呢军拟?比如有突發(fā)情況剃执,對面迎來一架飛機(jī),如何判斷該不該躲懈息?如果只有一套系統(tǒng)肾档,那就沒得選了,相當(dāng)于中心化部署了辫继,系統(tǒng)如果壞了你就掛了怒见。如果兩套系統(tǒng)有一臺壞了呢,好的說躲姑宽,壞的說不躲遣耍,計算機(jī)無法判斷最終結(jié)果的。所以需要三套獨(dú)立的系統(tǒng)來支撐炮车,總歸壞兩臺的概率還是小的舵变。但這只是考慮了損壞情況,如果有惡意系統(tǒng)呢瘦穆?所以三臺還夠嗎纪隙?答案是否定的,我們需要四臺系統(tǒng)來保持共識扛或。
而對于區(qū)塊鏈的應(yīng)用也是類似的方式绵咱,因為擁有龐大的節(jié)點(diǎn)支撐,每個節(jié)點(diǎn)都是單獨(dú)的系統(tǒng)互不干擾熙兔,我們可以假設(shè)故障節(jié)點(diǎn)和惡意節(jié)點(diǎn)的數(shù)量是有限的悲伶,所以并不會導(dǎo)致數(shù)據(jù)的共識出現(xiàn)異常。
目前來看區(qū)塊鏈未來的應(yīng)用會有很大的前景住涉,雖然目前成功的案例并不多麸锉,但也是一個趨勢,可以進(jìn)行持續(xù)的關(guān)注秆吵。