我忽然發覺很多人對區塊鏈缺乏基本認識,不清楚區塊鏈的定義。不過我相信領導肯定是知道的。
根據給領導講課的陳院士所歸納,區塊鏈是,一:一個放在非安全(也就是有惡意節點的)環境中的分布式數據庫(係統)。所以,有一個中心服務器或者節點的,不是區塊鏈。節點都是安全的無惡意的,也不是區塊鏈。從應用的角度講,如果你的應用必須要使用中心節點(例如銀行轉帳、Uber, 目前幾乎所有的服務係統...),或者沒必要考慮節點不安全的情況(也就是說即使它是惡意的也沒太大影響),那麽不需要考慮區塊鏈技術。
二:區塊鏈是采用密碼學的方法來保證已有數據不可能被篡改。這個是誤解最多的部分,因為很多人一提到區塊鏈就隻覺得是這個。這部分的確很重要,而且確實區塊鏈也因此得名,但這隻是區塊鏈的定義的一部分。這個部分的兩個核心要點是:(1)哈希函數,(2)非對稱加密(公鑰和私鑰)。
三、區塊鏈采用共識算法來對新增數據達成共識。共識算法的目的,就是讓所有節點對於新增區塊達成共識,也就是說,所有人都要認可新增的區塊。對於有中心的係統,這事很簡單,中心說什麽大家同意就好了,但是放到去中心化係統裏,尤其是有些節點帶有惡意的時候,驗證誰說的是真話就非常複雜,解決的辦法是“拜占庭容錯”(BFT),另一個就是現在比特幣所用的,獎勵機製。
以上幾點就不詳細說了,沒時間。但如果真了解了區塊鏈,馬上就能想到一個場景是你必須用區塊鏈,而不是現有結構的數據庫所能實現的:你要通過網絡與某人做交易,而那個某人對你是否有惡意也是你不知道的,但你又必須和他做交易的;你希望交易隻有你們兩個人知道,你絕對不希望那個網絡管理員看到,更不希望他無節操地把你的秘密拿出去換取自身利益。那這是什麽場景?兩個字,洗錢。
洗錢聽起來不正當,但如果是兩個國家的政府之間的交易呢?一切都是合理合法的,隻為了不讓第三國知道,而這個第三國為什麽會知道?因為他兼職網管。那這是什麽?現有的SWIFT係統。(巴西和愛沙尼亞做了筆買賣,公平合理,一沒偷二沒搶三雙方自願成交,你美國幹什麽看著我們呢?就因為我們這筆交易是用美元?憑什麽啊,就是不讓你知道不讓你知道不讓你知道!)
數據結構有許多種,鏈型結構是很受局限的一種,那為什麽還要采用呢?一定是有它不得不用的原因。關注區塊鏈是否值得應用,不是看什麽場景可以用區塊鏈,而是看什麽場景隻能通過區塊鏈來解決。如果說區塊鏈隻是不可篡改的數據結構,那麽不僅它不是什麽新東西,而且連“區塊鏈”這個詞都站不住腳。因為比如以下這個場景,公司有個中心服務器,所有人有自己的私鑰,然後所有活動記錄全部用私鑰加密存在這個不可篡改的數據庫上。聽起來好像很好,甚至不少人就拿這種概念推銷給想要蹭區塊鏈熱度的公司,然後公司的人不懂技術就直接給錢了,東西也做出來了,也用了,似乎也沒什麽問題……但是,這東西和一般的數據庫有什麽區別嗎?數據庫也可以用哈希做成不可篡改的啊,數據庫每個人登陸也是要密鑰的啊,而且數據庫的存儲結構效率要比鏈式高多了啊。而且,為啥要把數據打包成區塊然後鏈起來呢?保證不可篡改還可以用哈希列表或者梅克爾樹,為什麽要用鏈呢?這種鏈式結構放在這裏毫無意義啊。也就是說區塊鏈之所以是新東西,之所以現在這麽熱,是因為它是一個能在不安全網絡中工作的去中心化的數據庫,因為它有共識算法。如果是中心化的,沒有共識算法,那麽這東西一沒必要用鏈式結構,二和傳統數據庫相比沒有任何優勢。
區塊鏈一大特點是所有上鏈的數據必須通過所有節點的驗證,然而,如果區塊鏈得到了大規模應用,這就代表了所有的節點都會獲取所有的數據。然而這就出現了兩難選擇:我們不信任中心,有很大的一部分原因是中心獲取了我們所有的數據,所以我們要繞開它,可現在倒好,用了區塊鏈去中心之後,所有人都可以獲取我們所有的數據了。因此,如何在能夠保證隱私的同時還可以享受區塊鏈帶來的去中心化優勢呢?這需要所有節點能夠在不知道數據內容的情況下,還能夠對數據的有效性進行驗證,例如:在不知道你是誰,具體有多少錢,你想要支出多少錢的情況下,驗證你確實有一筆錢可以來完成這筆支出……這聽起來像是天方夜譚,可實際上有一種密碼學的工具可以實現它,就是零知識證明。
這裏有許多可以說的,沒時間寫了。
-----
忙完了回來接著說。
很多人懷疑領導被忽悠了,我想這個懷疑具體是指,那些懷有自己目的的人,鼓動起來跑到領導那裏,說一大篇由新名詞新創新點組成的話,告訴領導說這就是區塊鏈,它的應用有多麽的廣闊,能解決多少就業等諸多好處(但實際上那些都不是區塊鏈,而是假借這個新名詞裝的舊酒),然後領導就相信了。但我覺得,領導肯定知道他們在忽悠他,但他必須把這條路走下去,因為他實在找不到比這更好的經濟增長點了。他必須有個新東西,能吸引人來投資。所以我估計,這以後中國會出現很多號稱采用了區塊鏈技術的應用,但都不是真的,而是采用的已有的樹狀網狀或其他數據結構的應用。因為區塊鏈的應用場景實在太窄了,99%的場合下,你沒必要用區塊鏈。
就象陳純所給的例子,說中小企業貸款難,有各種繁瑣的手續,如果中小企業有訂單,有應收賬款,把這些變成區塊鏈憑證,就可以貸款了,而且非常快,中小企業融資難問題就解決了。但我想很多人都明白,這個場景用現有的成熟技術,解決繁瑣手續的核實,太綽綽有餘了。而且中小企業貸款難,根本原因並非技術障礙。
大部分問題,隻要往深裏追一點,就會發現不是技術問題,而是法規和製度的問題。但你必須把它歸因於技術障礙,這樣才能引來錢,創造新的經濟增長點。
假如這個東西真那麽好,可以廣泛應用的話,美國這邊早就蓬勃發展了,輪不到現在。區塊鏈不是什麽新東西,早十年就出來了,可十年來,在其基礎上的應用,才區區可數的幾個,其中最廣為人知的是比特幣。這也從側麵反映了區塊鏈的'無必要性'。