區(qū)塊鏈構(gòu)架就是造房子,10分鐘帶你走遍構(gòu)建全程
本文作者Taylor Pearson,是The End of Jobs專欄作家、企業(yè)家,過去三年曾與數(shù)百名企業(yè)家互動交流。他喜歡研究創(chuàng)新型技術,對區(qū)塊鏈技術有較深入的研究。
2008年,一個叫做中本聰(Satoshi Nakamoto)的人(或團體)定義了第一個區(qū)塊鏈。
2009年1月,中本聰將區(qū)塊鏈作為比特幣的核心組成部分推出,它是網(wǎng)絡上所有交易的公共分類帳。
由于使用了區(qū)塊鏈技術,比特幣成為了第一個解決雙重支付問題的數(shù)字貨幣,它不再需要第三方信任機構(gòu),并且成為其他許多應用創(chuàng)新的技術基礎。
我相信在一百年后,區(qū)塊鏈將像今天的電力一樣普遍。它會變得像經(jīng)濟體的基本組成部分一樣,為每個人服務。也會像水一樣平常,以至于我們往往會忽視它的存在。
可以預料的是,在接下來的幾十年中,區(qū)塊鏈應用和組織將呈爆炸式增長,就像幾十年前的互聯(lián)網(wǎng)或上世紀初的電氣化一樣。
如果上述一切成真,那么我們很有必要對區(qū)塊鏈有一個基本了解,特別要知道它們的重要性以及它們的工作機制。
區(qū)塊鏈為什么重要?
“許多名人發(fā)表演講時都會提到一句名言,盡管這句話說的并不怎么正確:我們應該培養(yǎng)思考行為的習慣。但文明的進步卻是由越來越多無需思索卻得以運行的重要操作推動。”
——Alfred North Whitehead(艾爾弗雷德·諾思·懷特海,現(xiàn)代著名數(shù)學家、哲學家和教育理論家)
以區(qū)塊鏈中一方將比特幣發(fā)送給另一方的交易為例,該交易中諸如比特幣來源、目的地和日期/時間戳等細節(jié)會被添加到區(qū)塊中。
由于密碼學的使用,區(qū)塊鏈極大地提高了社會發(fā)展的可擴展性(social scalability),個體之間越來越多的合作,正成為文明的必要特征。
在過去的歷史中,人類通常只以部落為單位,在小圈子里與有血緣關系的人交易,因為當時人類無法信任部落之外的個體。
在過去幾千年中,各種各樣的技術創(chuàng)新促使人類在更大的群體中進行合作,社交可擴展性被進一步提高。
現(xiàn)代法律制度的完善減少了暴力,盜竊和欺詐的發(fā)生幾率,使沒有預先存在關系(pre-existing relationship)的群體或個體以互動。
互聯(lián)網(wǎng)則通過評級系統(tǒng)(rating system),促進了預先存在很少或根本沒有社會關系的個體之間的交易。
區(qū)塊鏈有潛力將社交可擴展性提高到以前技術所沒有達到的水平。這是我們第一次擁有一種不需要依賴可信的第三方,卻能讓一個互聯(lián)網(wǎng)用戶安全地將數(shù)字資產(chǎn)轉(zhuǎn)移到另一個互聯(lián)網(wǎng)用戶的方式。如此偉大的交易創(chuàng)舉是如何夸大也不為過的。
除此之外,數(shù)字合約、數(shù)字密鑰,以及實物資產(chǎn)的數(shù)字所有權(quán),包括汽車、房屋、股票、債券,以及數(shù)字貨幣也值得深思。
什么是區(qū)塊鏈技術
我們先來給區(qū)塊鏈技術下個定義:
區(qū)塊鏈是一種分類帳,它使用加密技術和激勵措施并以防篡改的方式記錄交易。這使匿名雙方進行信任最小化(trust-minimized)交易,而不需要可信中介。
現(xiàn)在,讓我們整合這些零散的知識,以便你在文章的最后對區(qū)塊鏈技術有一個完整認識。
基元
在我們深入研究區(qū)塊鏈之前,需要建立一些基元。基元類似于建筑材料。如果你想建造一間房子,你需要木料、螺絲、電鉆和鋸子。在你開始建造之前,最好對每個工具都足夠了解。區(qū)塊鏈也類似。
區(qū)塊鏈的基本構(gòu)成要素就是加密基元。
而密碼學是研究在第三方(即敵人)的存在下安全通信的技術。
在歷史上,軍方已經(jīng)進行了大量的密碼學研究,以確保他們能夠安全地進行通信,而不讓敵人閱讀他們的電報或無線電信息。
現(xiàn)代密碼學被應用于網(wǎng)址、信用卡芯片和計算機密碼之中。它用來阻止第三方(黑客,小偷等)竊取敏感數(shù)據(jù),如信用卡信息。
第一個基本構(gòu)成要素是哈希函數(shù)。
哈希函數(shù)
哈希函數(shù)是一種允許你對數(shù)據(jù)進行加密的數(shù)學函數(shù)。
哈希函數(shù)有三個屬性:
它的輸入可以是任意大小。
例如,我可以使用“我喜歡冰淇淋”這個短語作為輸入,或者我也可以使用《戰(zhàn)爭與和平》的全部文本,兩者都行。
不論使用任何大小的輸入,哈希函數(shù)的特定散列算法決定了其固定大小的輸出。為了讓算法過于簡單,我們將使用256位輸出(它是比特幣所使用的)。
不論我使用“我喜歡冰淇淋”這一短語作為輸入,還是使用《戰(zhàn)爭與和平》的全文作為輸入,兩者都會產(chǎn)生相同大小的輸出。
使用SHA 256算法,短語“我喜歡冰淇淋”(沒有引號)創(chuàng)建輸出:
138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634
從古騰堡計劃(project Gutenberg)復制的整本《戰(zhàn)爭與和平》(全587,287詞)創(chuàng)建輸出:
57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096
即使輸入的文本長度相差146,821倍,你也可以獲得相同大小的輸出。這一點很酷也很有用。
函數(shù)是可高效計算的,對于任何給定的輸入字符串,你可以在合理的時間內(nèi)獲得輸出。
即使我使用《戰(zhàn)爭與和平》的整個文本作為輸入,它仍然可以在較短時間內(nèi)將其轉(zhuǎn)換為輸出。
以上是一般哈希函數(shù)的屬性。一般哈希函數(shù)允許你將大量數(shù)據(jù)映射到一個小空間,這有助于存儲和處理不同類型的數(shù)據(jù)。
不過,我們應把重點放在加密哈希函數(shù)上,因為它是區(qū)塊鏈中使用的函數(shù)。
加密哈希函數(shù)有三個附加屬性:
抗碰撞性(Collision Resistance)
確定隱匿性(Deterministic Hiding)
難題友好性(Puzzle Friendliness)
加密哈希函數(shù)
抗碰撞性
這里的碰撞是指兩個不同的輸入產(chǎn)生相同的輸出。雖然輸出大小相同,但輸出本身不會與其他輸出相同。“我喜歡冰淇淋”與《戰(zhàn)爭與和平》的整個文本產(chǎn)生相同大小的輸出,但字符不同。
如果它們產(chǎn)生完全相同的輸出,你解密了我發(fā)送給你的加密文本之后,并不會知道我是想告訴你“我喜歡冰淇淋”還是你應該閱讀《戰(zhàn)爭與和平》。
值得注意的是,兩個“鄰近”輸入不會產(chǎn)生鄰近的輸出。《戰(zhàn)爭與和平》的哈希與改變了一個字符的《戰(zhàn)爭與和平》的哈希完全不同。
使用SHA 256,整本《戰(zhàn)爭與和平》生成哈希值:
57027F5B3877ABBE43ACB101D59E963BC2CC0E86A6EBCCC34DFD035BBF83B096
如果我刪除最后一個句點,但保留其他所有內(nèi)容,則會生成哈希值:
E2E2E4FFD582E20474F0310C2132EAE5F2D766C6A253C1BC4AF57861095B30FA
這非常類似于混沌系統(tǒng)中的兩個“鄰近”起點非常迅速地導致兩個完全不同的未來軌跡。哈希函數(shù)的這種“混亂不規(guī)則性”會產(chǎn)生抗碰撞性。它的輸出幾乎隨機(理論上并不隨機),因此不太可能發(fā)生碰撞。我們還能壓縮數(shù)據(jù),因為它可以將「無窮大」映射到有限空間。
這一特性在匯款時尤其重要。錢包的公鑰是使用加密哈希函數(shù)從私鑰生成的。誰都不希望其他人能夠通過逆向工程獲取公鑰來計算你的私鑰(因為你的錢可能被偷)。
如果沒有人能找到碰撞的情況,則可以認為哈希函數(shù)是抗碰撞的。從理論上講,我們知道碰撞的存在是因為輸入的數(shù)量是無限的,但輸出的數(shù)量是有限的——只有有限種方法可以排列64個字符。
但在實踐中,加密哈希函數(shù)SHA 256是抗碰撞的,因為沒有人發(fā)現(xiàn)過碰撞,并且它發(fā)生的幾率是天文數(shù)字。如果人類制造的每臺計算機自宇宙開始以來一直試圖發(fā)現(xiàn)碰撞,那么它發(fā)生的可能性低于地球在接下來的兩秒鐘內(nèi)被巨大的流星摧毀的可能性。
所以,碰撞是可能發(fā)生的,但我們首先還有很多其他更重要的問題要解決。
確定隱匿性
哈希值看起來是隨機的,但實際上是確定的。因此,它們的輸出是可重現(xiàn)的,只要你使用相同的輸入,就可以持續(xù)獲得相同的輸出。這意味著,知道輸入的兩方可以通過向第三方顯示他們的哈希來驗證對方是否知道輸入。
加密哈希函數(shù)的第二個屬性是隱匿性。隱匿性意味著即便給出輸出,也沒有可行的方法來計算輸入。
也就是說,第三方觀察者無法知道
138F4504A873C01D0864343FAD3027F03CA9BEA2F0109005FA4FC8C7DCC12634
的意思是“我喜歡冰淇淋。”
但是,如果我知道輸入是“我喜歡冰淇淋”,那么通過檢查你的哈希,我可以輕松驗證你是否知道輸入。
然而,如果其他人看到哈希,他們就無法使用它來計算輸入。這允許知道輸入的人使用散列后的輸出在公共頻道中安全地進行通信,而不必擔心第三方觀察者獲取信息。
難題友好性
第三個屬性是加密哈希函數(shù)的難題友好性。這意味著如果有人想要生成一個與“我喜歡冰淇淋”相同的輸出的哈希,那么找到一個完全符合這一輸出的另一個值是非常困難的。
生成哈希的算法是嘗試每個可能的字符串,按長度排序,然后按字母順序排序,直到得到哈希為相同值的字符串。這等于是大海撈針,所以我們得到的概率表明,小行星消滅地球上的所有生命是一個更緊迫的問題。
另一方面是加密哈希函數(shù)難以逆轉(zhuǎn)(reverse)。相較于數(shù)據(jù)結(jié)構(gòu)或壓縮算法中使用的哈希,這是加密哈希的主要特點。
這也是區(qū)塊鏈

責任編輯:售電衡衡
-
5大重點任務11個重點細分 河北加快構(gòu)建省級能源大數(shù)據(jù)中心
-
能源互聯(lián)網(wǎng)注入數(shù)字經(jīng)濟新動能 電力大數(shù)據(jù)實現(xiàn)更多價值
-
中國首個100%利用清潔能源運營的大數(shù)據(jù)產(chǎn)業(yè)園投運
2020-07-21清潔能源,清潔能源消納,青海
-
探索大數(shù)據(jù) 區(qū)塊鏈實現(xiàn)與能源互聯(lián)網(wǎng)良好契合
2020-06-09區(qū)塊鏈,電力行業(yè),能源互聯(lián)網(wǎng) -
基于區(qū)塊鏈的含安全約束分布式電力交易方法
-
區(qū)塊鏈在能源交易與協(xié)同調(diào)度的應用前景:提升電力交易的自由度和實時響應效率
2019-11-04區(qū)塊鏈在能源交易與協(xié)同