小白如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
區(qū)塊鏈?zhǔn)鞘裁??有時候覺得這是個蠻無聊的問題。因為,這就好像一個人問我“人活著是為了什么?”,我可能會這樣回答:???????
生活的意義需要參與到生活的細(xì)節(jié)過程中才能體會,“區(qū)塊鏈?zhǔn)鞘裁?rdquo;只有實際參與到區(qū)塊鏈項目中才能回答。我想,有一類人能回答這個問題。
這些人往往是穿著拖鞋短褲來上班、每天11點40準(zhǔn)時吃飯的二逼青年;這些人也是從不在微信群里爭論是否加班的佛系男女。這些人是誰?這些人就是永遠(yuǎn)奮斗在一線、對著代碼就能高潮的程序猿。
但是,并不是每個人都是程序員,也不是每個人都能參與到區(qū)塊鏈項目中,比如我。我是一個采編,只想拿著區(qū)塊鏈的概念吹吹牛,那么,how?
1.定義
一般認(rèn)為,區(qū)塊鏈(blockchain)這個詞是從2008年10月31日署名為中本聰(Satoshi Nakamoto)的論文《比特幣:一種點對點的電子現(xiàn)金系統(tǒng)》開始的。實際上,在這篇論文里并沒有出現(xiàn)blockchain,而只有區(qū)塊(block)和鏈(chain)。
隨著比特幣從社區(qū)、到暗網(wǎng)、然后發(fā)展到地面上,有人對炒幣感興趣,有人對比特幣的底層技術(shù)–區(qū)塊鏈感興趣,因此就形成了幣圈和鏈圈。在鏈圈里,一些技術(shù)專家和專業(yè)機(jī)構(gòu)嘗試給區(qū)塊鏈下定義:
“信任的機(jī)器。” ——2015年10月《經(jīng)濟(jì)學(xué)人》
“區(qū)塊鏈技術(shù)是指通過去中心化和去信任的方式集體維護(hù)一個可靠數(shù)據(jù)庫的技術(shù)方案。” ——2018維京研究院&甲子智院《區(qū)塊鏈行業(yè)詞典》
“區(qū)塊鏈?zhǔn)且粋€去中心化的分布式賬本數(shù)據(jù)庫,該數(shù)據(jù)庫由一串使用密碼學(xué)方法產(chǎn)生的數(shù)據(jù)區(qū)塊有序鏈接而成,區(qū)塊中包含有一定時間內(nèi)產(chǎn)生的無法被篡改的數(shù)據(jù)記錄信息。” ——長鋏、韓峰 等《區(qū)塊鏈:從數(shù)字貨幣到信用社會》
“狹義來講,區(qū)塊鏈?zhǔn)且环N按照時間順序?qū)?shù)據(jù)區(qū)塊以順序相連的方式組合成的一種鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu),并以密碼學(xué)方式保證的不可篡改和不可偽造的分布式賬本。”——《中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書》(2016)
“廣義來講,區(qū)塊鏈技術(shù)是利用塊鏈?zhǔn)綌?shù)據(jù)結(jié)構(gòu)來驗證與存儲數(shù)據(jù)、利用分布式節(jié)點共識算法來生成和更新數(shù)據(jù)、利用密碼學(xué)的方式保證數(shù)據(jù)傳輸和訪問的安全、利用由自動化腳本代碼組成的智能合約來編程和操作數(shù)據(jù)的一種全新的分布式基礎(chǔ)架構(gòu)與計算范式。”——《中國區(qū)塊鏈技術(shù)和應(yīng)用發(fā)展白皮書》(2016)
……
(對我們大多數(shù)人來說,對權(quán)威的依賴在很多事情上來說是必需的,尤其是面對一些困難或復(fù)雜問題的時候,比如什么是區(qū)塊鏈。)
顯然,區(qū)塊鏈有著各種各樣技術(shù)層面的定義,如果讓我來總結(jié)一下的話,我會這樣說:區(qū)塊鏈?zhǔn)且粋€技術(shù)方案,它以數(shù)據(jù)庫為核心,由分布式存儲、P2P傳輸、加密算法、共識機(jī)制等技術(shù)構(gòu)成,其特點是去中心化、鏈上信息不可篡改或偽造。
(我的這個定義嚴(yán)格來說,是比特幣區(qū)塊鏈)然后,這些技術(shù)是如何發(fā)揮作用的呢?
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
2.分布式數(shù)據(jù)庫
(1)分布式數(shù)據(jù)庫
講真的,雖然大學(xué)的時候?qū)W過計算機(jī)基礎(chǔ)和VB,但是由于從事的不是IT相關(guān)的工作,所以這些知識全都還給老師了。下面的關(guān)于分布式數(shù)據(jù)庫講解大多是基于《分布式數(shù)據(jù)庫系統(tǒng)原理(第三版)》這本書。
理論上,我們把分布式數(shù)據(jù)庫定義為一群分布在計算機(jī)網(wǎng)絡(luò)上、邏輯上相互關(guān)聯(lián)的數(shù)據(jù)庫,如下圖。
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
使用數(shù)據(jù)庫系統(tǒng)的原因之一就是把企業(yè)的運營數(shù)據(jù)集成起來,這樣就可以對數(shù)據(jù)進(jìn)行集中控制或隨時存取。
注意,數(shù)據(jù)庫最重要的目標(biāo)是集成,而不是集中。集成與集中的區(qū)別就在于有沒有邏輯上的聯(lián)系,集成有邏輯上的聯(lián)系,而集中沒有。只有彼此之間產(chǎn)生聯(lián)系才能一起工作。
為什么要使用分布式的數(shù)據(jù)庫呢?我找到了一個牛逼的答案:
面對現(xiàn)在的大規(guī)模數(shù)據(jù)管理問題,如果能把復(fù)雜的問題分割稱更小的部分,并把它們分配到不同的軟件群加以解決。這些軟件群在不同的計算機(jī)上工作,這樣它們就形成了一個系統(tǒng),運行在多個處理單元上,共同完成一項任務(wù)。
通用、高效、自適應(yīng)…“中本聰”不使用分布式數(shù)據(jù)庫,還能用什么庫呢?優(yōu)衣庫?
(2)拜占庭將軍問題
我們平時談到籃球,就會馬上想到科比;談到區(qū)塊鏈,就會想到巴比特。而談到分布式數(shù)據(jù)庫,“拜占庭將軍問題”肯定是繞不開的。
在繼續(xù)下文之前,我要首先聲明的是,“拜占庭將軍問題”并不是一個真實的歷史事件,它是一個虛構(gòu)的故事。原因很簡單:
故事容易被傳播。只要是個正常人,就會喜歡看故事。把計算機(jī)領(lǐng)域里抽象的問題用故事的形式表現(xiàn)出來,這樣能得到更多人的關(guān)注。關(guān)注的人越多,這個問題就能更快地被解決。
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
“拜占庭將軍問題”出現(xiàn)在1982年7月Leslie Lamport和Marshall Pease 、Robert Shostak合作發(fā)表的論文《The Byzantine Generals Problem》,故事是這樣的:
假設(shè)有幾支拜占庭軍隊現(xiàn)在正在一個敵城外扎營,每支軍隊由一個將軍指揮。將軍之間只能通過信使傳遞信息。觀察完敵情后,他們必須制定一份共同的行動計劃。
然而,有些將軍可能是叛徒,他們會盡力阻止那些忠誠的將軍達(dá)成一致的計劃。將軍們必須有一個算法來保證以下幾點:
1.所有忠誠的將軍必須達(dá)成相同的行動計劃。
忠誠的將軍會根據(jù)“算法”的要求來行動,而叛變的將軍想去哪兒就去哪兒,想干嘛就干嘛。不管叛軍做什么,算法必須保證所有忠誠的將軍達(dá)成相同的行動計劃忠誠的將軍不僅要在行動上達(dá)成一致,還要認(rèn)可可執(zhí)行的計劃。所以我們也要確保:
2.當(dāng)少數(shù)人是叛軍的時候,他們無法阻止忠誠的將軍接收到可執(zhí)行的計劃。
這個故事是計算機(jī)科學(xué)中,研究分布式一致性(Distributed consensus)問題的典型案例。
一般的,對這個問題的研究是為了增加分布式系統(tǒng)的可靠性。比如Twitter、Facebook這樣的系統(tǒng),它們有很多服務(wù)器,同時記錄著系統(tǒng)上發(fā)生的所有行為。
因為每一條信息分別記錄在不同的后臺節(jié)點上,所以系統(tǒng)具有分布式的特點。一旦數(shù)據(jù)記錄不一致,就有可能發(fā)生用戶信息丟失的情況。在2008年10月31號之前,人們都還不知道如何使這樣的系統(tǒng)達(dá)成完美的一致性。
(3)中本聰
2018年10月31日下午2點10分,在一個密碼朋克的郵件組里,幾百個成員收到了一封署名為中本聰?shù)碾娮余]件,郵件里寫到:“我一直在研究一個新的電子現(xiàn)金系統(tǒng),這完全是點對點的,無需任何可信的第三方參與。”,在這句話的下方,有白皮書的鏈接,其中描述了一個新的貨幣體系。
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
(在這里,我們假設(shè)中本聰是一個真實的人)中本聰優(yōu)雅地利用“工作量證明鏈”(proof-of-work chain)解決了“拜占庭將軍問題”。詳情見《區(qū)塊鏈:重塑經(jīng)濟(jì)與世界》第一章,添加個人微信即可獲得PDF版電子書,聯(lián)系方式在個人介紹里。
比特幣的白皮書里,除了工作量證明(共識機(jī)制)之外,還涉及到加密算法(非對稱加密、哈希函數(shù))、P2P傳輸、分布式存儲等技術(shù)。為了避免啰嗦,這些技術(shù)的細(xì)節(jié)我在這里就不寫了,只講一下這些技術(shù)是如何配合的。
3.協(xié)議
我是今年1月中旬才知道區(qū)塊鏈的,至今已有3個月了。剛開始接觸的時候,經(jīng)常聽說“區(qū)塊鏈?zhǔn)堑谒拇喂I(yè)革命”“區(qū)塊鏈將顛覆所有行業(yè)”之類的,覺得區(qū)塊鏈很神、很吊。可是,接觸久了以后,我發(fā)現(xiàn)區(qū)塊鏈也許并沒有那么神奇,畢竟它是建立在互聯(lián)網(wǎng)技術(shù)的基礎(chǔ)之上的。
互聯(lián)網(wǎng)是一個通過TCP/IP協(xié)議進(jìn)行高效信息傳輸?shù)木W(wǎng)絡(luò),區(qū)塊鏈則是基礎(chǔ)現(xiàn)有互聯(lián)網(wǎng)協(xié)議架構(gòu)構(gòu)建出的新的基礎(chǔ)協(xié)議層。
“協(xié)議是指為了完成給定的任務(wù),進(jìn)程間通信所要用到的一組通用的規(guī)則和給事。協(xié)議的存在使得分布式系統(tǒng)的軟件能獨立地開發(fā),能在代碼次序不一樣、數(shù)據(jù)表達(dá)不一樣的計算機(jī)上用不同的程序語言實現(xiàn)。”–《分布式系統(tǒng)概念與設(shè)計(第5版)》
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
類似于TCP/IP協(xié)議的分層結(jié)構(gòu),區(qū)塊鏈的復(fù)雜性也體現(xiàn)在其組成的層級結(jié)構(gòu)。
“網(wǎng)絡(luò)軟件是按層的層次結(jié)構(gòu)開發(fā)的,每一層都為上面的層提供了相應(yīng)的接口,并擴(kuò)展了下層通信系統(tǒng)的性質(zhì)。”–《分布式系統(tǒng)概念與設(shè)計(第5版)》
新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?新手如何用“區(qū)塊鏈”優(yōu)雅地裝逼?
數(shù)據(jù)層/ Data Layer
數(shù)據(jù)層主要描述區(qū)塊鏈的物理形式,是區(qū)塊鏈上從創(chuàng)世區(qū)塊起始的鏈?zhǔn)浇Y(jié)構(gòu),包含了區(qū)塊鏈的區(qū)塊數(shù)據(jù)、鏈?zhǔn)浇Y(jié)構(gòu)以及區(qū)塊上的隨機(jī)數(shù)、時間戳、公私鑰數(shù)據(jù)等,是整個區(qū)塊鏈技術(shù)中最底層的數(shù)據(jù)結(jié)構(gòu)。
網(wǎng)絡(luò)層/ Network Layer
網(wǎng)絡(luò)層主要通過 P2P 技術(shù)實現(xiàn)分布式網(wǎng)絡(luò)的機(jī)制,網(wǎng)絡(luò)層包括 P2P 組網(wǎng)機(jī)制、數(shù)據(jù)傳播機(jī)制和數(shù)據(jù)驗證機(jī)制,因此區(qū)塊鏈本質(zhì)上是一個 P2P 的網(wǎng)絡(luò),具備自動組網(wǎng)的機(jī)制,節(jié)點之間通過維護(hù)一個共同的區(qū)塊鏈結(jié)構(gòu)來保持通信。
共識層/ Consensus Layer
共識層主要包含共識算法以及共識機(jī)制,能讓高度分散的節(jié)點在去中心化的區(qū)塊鏈網(wǎng)絡(luò)中高效地針對區(qū)塊數(shù)據(jù)的有效性達(dá)成共識,是區(qū)塊鏈的核心技術(shù)之一,也是區(qū)塊鏈社群的治理機(jī)制。目前至少有數(shù)十種共識機(jī)制算法,包含工作量證明、權(quán)益證明、權(quán)益授權(quán)證明、燃燒證明、重要性證明等。
數(shù)據(jù)層、網(wǎng)絡(luò)層、共識層是構(gòu)建區(qū)塊鏈技術(shù)的必要元素,缺少任何一層都不能稱之為真正意義上的區(qū)塊鏈技術(shù)。
激勵層/ Actuator Layer
激勵層主要包括經(jīng)濟(jì)激勵的發(fā)行制度和分配制度,其功能是提供一定的激勵措施,鼓勵節(jié)點參與區(qū)塊鏈中安全驗證工作,并將經(jīng)濟(jì)因素納入到區(qū)塊鏈技術(shù)體系中,激勵遵守規(guī)則參與記賬的節(jié)點,并懲罰不遵守規(guī)則的節(jié)點。
合約層/ Contract Layer
合約層主要包括各種腳本、代碼、算法機(jī)制及智能合約,是區(qū)塊鏈可編程的基礎(chǔ)。將代碼嵌入?yún)^(qū)塊鏈或是令牌中,實現(xiàn)可以自定義的智能合約,并在達(dá)到某個確定的約束條件的情況下,無需經(jīng)由第三方就能夠自動執(zhí)行,是區(qū)塊鏈去信任的基礎(chǔ)。
應(yīng)用層/ Application Layer
區(qū)塊鏈的應(yīng)用層封裝了各種應(yīng)用場景和案例,類似于電腦操作系統(tǒng)上的應(yīng)用程序、互聯(lián)網(wǎng)瀏覽器上的門戶網(wǎng)站、搜尋引擎、電子商城或是手機(jī)端上的 APP,將區(qū)塊鏈技術(shù)應(yīng)用部署在如以太坊、EOS、QTUM 上并在現(xiàn)實生活場景中落地。未來的可編程金融和可編程社會也將會是搭建在應(yīng)用層上。
激勵層、合約層和應(yīng)用層不是每個區(qū)塊鏈應(yīng)用的必要因素,一些區(qū)塊鏈應(yīng)用并不完整包含此三層結(jié)構(gòu)。
基于互聯(lián)網(wǎng)構(gòu)建統(tǒng)一的價值傳輸層,即價值互聯(lián)網(wǎng)的誕生,將是區(qū)塊鏈發(fā)展及演進(jìn)的必然結(jié)果。價值互聯(lián)網(wǎng)的誕生將進(jìn)一步打破信息不對稱的壁壘,讓以貨幣、數(shù)字資產(chǎn)為代表的數(shù)字化價值無需借助大量的中介機(jī)構(gòu),就能在全球范圍內(nèi)自由流動,這將讓市場效率得到質(zhì)的飛躍,甚至徹底改變目前的金融與經(jīng)濟(jì)格局。
4.結(jié)語
所謂創(chuàng)新,只不過是過往技術(shù)的排列組合。
區(qū)塊鏈?zhǔn)且环N由分布式存儲、P2P傳輸、共識機(jī)制和加密算法結(jié)合的數(shù)據(jù)庫,這其中的每一項技術(shù)都不是近幾年才出現(xiàn)的。但正是有了天才和天才idea的存在,區(qū)塊鏈這一天才的發(fā)明得以為人所知,而由它構(gòu)建的價值互聯(lián)網(wǎng)是一片廣袤的新大陸,是未曾探索的大海,是剛剛露出水面的冰山一角。不管是區(qū)塊鏈技術(shù),還是相關(guān)行業(yè),都有無限的精彩在前方等著我們?nèi)グl(fā)現(xiàn)和開拓。
信息首發(fā):小白如何用“區(qū)塊鏈”優(yōu)雅地裝逼?