傳說(shuō)蘇東坡與僧人佛印是好朋友,一天,蘇東坡對(duì)佛印說(shuō):“以大師慧眼看來(lái),吾乃何物?”佛印說(shuō):“貧僧眼中,施主乃我佛如來(lái)金身!碧K東坡聽朋友說(shuō)自己是佛,自然很高興?伤姺鹩∨峙侄讯,卻想打趣他一下,笑曰:“然以吾觀之,大師乃牛屎一堆!狈鹩÷犔K東坡說(shuō)自己是“牛屎一堆”,并未感到不快,只是說(shuō):“佛由心生,心中有佛,所見萬(wàn)物皆是佛;心中是牛屎,所見皆化為牛屎!
與上同理,一模一樣的數(shù)據(jù),對(duì)于音樂播放器,它可能是一段音頻;對(duì)于殺毒軟件,它可能是一段病毒;對(duì)于畫圖軟件,它可能就是一幅圖片……如果沒有合適的程序,強(qiáng)行打開一個(gè)文件我們通常得不到任何有意義的內(nèi)容。但是對(duì)于電腦來(lái)說(shuō),所有數(shù)據(jù)都是存儲(chǔ)在硬盤上的一段二進(jìn)制代碼。
對(duì)于區(qū)塊鏈,情況也是一樣。區(qū)塊鏈上存儲(chǔ)的是二進(jìn)制的數(shù)據(jù),雖然對(duì)于大多數(shù)區(qū)塊鏈系統(tǒng)來(lái)說(shuō),原本的設(shè)計(jì)都是放置交易在區(qū)塊鏈上,但是我們也可以把任何內(nèi)容轉(zhuǎn)換為交易數(shù)據(jù)的形式,放在區(qū)塊鏈上;蛘咄ㄟ^修改區(qū)塊鏈的底層協(xié)議,讓區(qū)塊鏈系統(tǒng)可以直接作為數(shù)據(jù)的存儲(chǔ)器。
因此,對(duì)于通常的交易類型應(yīng)用,區(qū)塊鏈?zhǔn)强梢灾苯犹幱趹?yīng)用層的。對(duì)于其他類型的應(yīng)用,區(qū)塊鏈可以作為存儲(chǔ)底層使用。對(duì)于絕大部分應(yīng)用來(lái)說(shuō),存儲(chǔ)功能都是必需并且非常重要的一個(gè)功能,控制了存儲(chǔ),就控制了整個(gè)應(yīng)用。
在應(yīng)用層上,我們可以對(duì)數(shù)據(jù)進(jìn)行獨(dú)立的不同的解釋,進(jìn)而使區(qū)塊鏈可以用于不同的應(yīng)用。甚至在同一條區(qū)塊鏈上,我們通過對(duì)數(shù)據(jù)進(jìn)行分段標(biāo)記,不同的應(yīng)用讀取不同的數(shù)據(jù),來(lái)進(jìn)行不同的解釋,實(shí)現(xiàn)多種應(yīng)用共用同一條區(qū)塊鏈。當(dāng)然,這些應(yīng)用能夠真正工作的前提是:區(qū)塊鏈的數(shù)據(jù)讀寫能力滿足應(yīng)用的要求。
以域名系統(tǒng)(DNS)為例,DNS解析系統(tǒng)的核心數(shù)據(jù)“域名-IP”的對(duì)應(yīng)關(guān)系,DNS管理系統(tǒng)“域名-域名所有者”的對(duì)應(yīng)關(guān)系。如果我們把這兩種數(shù)據(jù)全部放在區(qū)塊鏈上,整個(gè)DNS系統(tǒng)就變成了一種分布式的DNS系統(tǒng)。DNS管理系統(tǒng)根據(jù)區(qū)塊鏈上的“域名-域名所有者”的對(duì)應(yīng)關(guān)系數(shù)據(jù),允許域名所有者寫入“域名-IP”的對(duì)應(yīng)關(guān)系數(shù)據(jù),DNS解析系統(tǒng)直接去區(qū)塊鏈上獲取“域名-IP”的對(duì)應(yīng)關(guān)系數(shù)據(jù),放在內(nèi)存里。然后再按照傳統(tǒng)的DNS解析系統(tǒng)工作方式進(jìn)行工作就可以了。
簡(jiǎn)單地說(shuō),區(qū)塊鏈系統(tǒng)提供了一個(gè)多個(gè)節(jié)點(diǎn)之間數(shù)據(jù)完全一致的底層存儲(chǔ)器,應(yīng)用層只需要去底層讀取數(shù)據(jù),然后按照自己的方式去使用,就可以了。于是,我們很方便的就得到了各種“區(qū)塊鏈+”的應(yīng)用。所以我們說(shuō),區(qū)塊鏈的能力很大。
但是,這樣用我們就真的能夠得到區(qū)塊鏈的精髓嗎?
我們把這樣的應(yīng)用分成兩類:
這兩類應(yīng)用的區(qū)別就在于:應(yīng)用服務(wù)接到用戶請(qǐng)求后,是把用戶要的結(jié)果寫到了區(qū)塊鏈上,讓用戶可以去鏈上查詢,還是直接把結(jié)果返回給了用戶。
我們?nèi)砸訢NS系統(tǒng)為例。對(duì)于DNS管理系統(tǒng)來(lái)說(shuō),可以算是第二類應(yīng)用。域名持有者發(fā)起一個(gè)變更域名指向地址的請(qǐng)求后,DNS管理系統(tǒng)會(huì)把變更后的結(jié)果寫回到區(qū)塊鏈上。域名持有者去區(qū)塊鏈上查詢,就可以知道DNS系統(tǒng)是否做了正確的事情。對(duì)于DNS解析系統(tǒng)來(lái)說(shuō),可以算是第一類應(yīng)用了。一個(gè)用戶發(fā)起DNS查詢請(qǐng)求后,DNS解析系統(tǒng)會(huì)立刻把解析后的地址返回給用戶,讓用戶使用。
這時(shí),存在一個(gè)中心化的風(fēng)險(xiǎn),DNS解析系統(tǒng)如果給了一個(gè)錯(cuò)誤的地址,用戶是無(wú)法知道的。(除非他去區(qū)塊鏈上自己查詢,如果是公有鏈,用戶還有權(quán)限查詢,如果是聯(lián)盟鏈,用戶可能無(wú)法查詢。另外由于DNS應(yīng)用本身要求響應(yīng)時(shí)間極短,因此用戶去鏈上查詢數(shù)據(jù)是沒有意義的。)黑客可以攻擊DNS解析系統(tǒng),讓DNS解析系統(tǒng)返回的數(shù)據(jù)不是從區(qū)塊鏈上獲取來(lái)的,而是黑客寫入的。在這種情況下,區(qū)塊鏈的無(wú)中心化抗攻擊能力并沒有傳遞給DNS解析系統(tǒng)。
對(duì)于第二類應(yīng)用,區(qū)塊鏈?zhǔn)强梢园l(fā)揮它真正的作用——應(yīng)用服務(wù)不會(huì)被中心化控制。而對(duì)于第一類應(yīng)用,區(qū)塊鏈只發(fā)揮出很小的作用,因?yàn)閼?yīng)用服務(wù)本質(zhì)上仍然是一個(gè)中心化的。所以我們說(shuō),區(qū)塊鏈的能力又很小。不過,區(qū)塊鏈在第一類應(yīng)用中,還提供了一個(gè)事后審計(jì)的能力,所以,對(duì)原中心化系統(tǒng)的信息安全能力還是有一些提升作用的。
作者簡(jiǎn)介
敖萌,現(xiàn)就職于中國(guó)信息通信研究院北京泰爾英福網(wǎng)絡(luò)科技有限責(zé)任公司,主要研究模式識(shí)別和區(qū)塊鏈。