區塊鏈知識,區塊鏈簡史

風靈使發表於2018-08-12

區塊鏈

區塊鏈定義

區塊鏈(Blockchain)是指通過去中心化和去信任的方式集體維護一個可靠資料庫的技術方案。
該技術方案讓參與系統中的任意多個節點,把一段時間系統內全部資訊交流的資料,通過密碼學演算法計算和記錄到一個資料塊(block),並且生成該資料塊的指紋用於連結(chain)下個資料塊和校驗,系統所有參與節點來共同認定記錄是否為真。

區塊鏈技術

區塊鏈是一種類似於NoSQL(非關係型資料庫)這樣的技術解決方案統稱,並不是某種特定技術,能夠通過很多程式語言和架構來實現區塊鏈技術。並且實現區塊鏈的方式種類也有很多,目前常見的包括POWProof of Work,工作量證明),POS(Proof of Stake,權益證明),DPOSDelegate Proof of Stake,股份授權證明機制)等。

公開區塊鏈技術要素

  • 點對點的對等網路(權力對等、物理點對點連線)
  • 可驗證的資料結構(可驗證的PKC體系,不可篡改資料庫)
  • 分散式的共識機制(解決拜占庭將軍問題,解決雙重支付)
  • 納什均衡的博弈設計(合作是演化穩定的策略)
    備註:如果只具有前3點要素,我們將認為其為私有區塊鏈技術(私有鏈)。

區塊鏈特性

  • 去中心化
    整個網路沒有中心化的硬體或者管理機構,任意節點之間的權利和義務都是均等的,且任一節點的損壞或者失去都會不影響整個系統的運作。
  • 無需信任
    參與整個系統中的每個節點之間進行資料交換是無需互相信任的,整個系統的運作規則是公開透明的,所有的資料內容也是公開的,因此在系統指定的規則範圍和時間範圍內,節點之間是不能也無法欺騙其它節點。
  • 集體維護
    系統中的資料塊由整個系統中所有具有維護功能的節點來共同維護的,而這些具有維護功能的節點是任何人都可以參與的。
  • 可靠資料庫
    整個系統將通過分資料庫的形式,讓每個參與節點都能獲得一份完整資料庫的拷貝。除非能夠同時控制整個系統中超過51%的節點,否則單個節點上對資料庫的修改是無效的,也無法影響其他節點上的資料內容。因此參與系統中的節點越多和計算能力越強,該系統中的資料安全性越高。

區塊鏈簡史

史前記事

哈耶克:《貨幣的非國家化》,1976

1976年,Bailey W. DiffieMartin E. Hellman兩位密碼學的大師發表了論文《密碼學的新方向》,論文覆蓋了未來幾十年密碼學所有的新的進展領域,包括非對稱加密、橢圓曲線演算法、雜湊等一些手段,奠定了迄今為止整個密碼學的發展方向,也對區塊鏈的技術和比特幣的誕生起到決定性作用。
同年,發生了另外一件看似完全不相關的事情——哈耶克出版了他人生中最後一本經濟學方面的專著:《貨幣的非國家化》。對比特幣有一定了解的人都知道,貨幣的非國家所提出的非主權貨幣、競爭發行貨幣等理念,或者說是去中心化貨幣的精神指南。
緊接著在1977年,著名的RSA演算法誕生,這應該說是1976年《密碼學的新方向》的自然延續,一點不令人驚訝,三位發明人也因此在2002年獲得了圖靈獎。不過,他們為RSA申請的專利,在世界上普遍認同演算法不能申請專利的環境下,確實沒什麼人承認,在2000年也提前失效了。
到了1980年,Merkle Ralf提出了Merkle-Tree這種資料結構和相應的演算法,後來的主要用途之一是分散式網路中資料同步正確性的校驗,這也是比特幣中引入用來做區塊同步校驗的重要手段。值得指出的是,在1980年的時候,真正流行的雜湊演算法、分散式的網路都還沒有出現,例如:我們熟知的SHA-1MD5這樣的東西都是90年代誕生的。在那個年代Merkle就釋出了這樣一個資料結構,後來對密碼學和分散式計算領域起到重要作用,多少有些令人驚訝。不過,如果大家瞭解Merkle的背景,就知道這事決非偶然:他就是《密碼學新方向》的兩位作者之一Hellman的博士生(另一位作者DiffieHellman的研究助理),實際上《密碼學的新方向》就是Merkle Ralf的博士生研究方向。據說Merkle實際上是《密碼學的新方向》主要作者之一,只是因為當時是博士生,沒有收到發表這個論文的學術會議的邀請,才沒能在論文上署名,也因此與40年之後的圖靈獎失之交臂。
1982年,Lamport提出拜佔廷將軍問題,標誌著分散式計算的可靠性理論和實踐進入到了實質性階段。同年,大衛·喬姆提出了密碼學支付系統ECash,可以看出,隨著密碼學的進展,眼光敏銳的人已經開始嘗試將其運用到貨幣、支付相關的領域了,應該說ECash是密碼學貨幣最早的先驅之一。
1985年,Koblitz和Miller各自獨立提出了著名的橢圓曲線加密(ECC)演算法。由於此前發明的RSA的演算法計算量過大很難實用, ECC的提出才真正使得非對稱加密體系產生了實用的可能。因此,可以說到了1985年,也就是《密碼學的新方向》發表10年左右的時候,現代密碼學的理論和技術基礎已經完全確立了。
有意思的是,1985-1997年這段時期,密碼學、分散式網路以及與支付/貨幣等領域的關係方面,沒有什麼特別顯著的進展。在筆者看來,這種現象很容易理解:新的思想、理念、技術的產生之初,總要有相當長的時間讓大家去學習、探索、實踐,然後才有可能出現突破性的成果。前十年往往是理論的發展,後十年則進入到實踐探索階段,1985-1997這十年左右的時間,應該是相關領域在實踐方面迅速發展的階段。最終,從1976年開始,經過20左右的時間,密碼學、分散式計算領域終於進入了爆發期。
1997年,HashCash方法,也就是第一代POW(Proof of Work)演算法出現了,當時發明出來主要用於做反垃圾郵件。在隨後發表的各種論文中,具體的演算法設計和實現,已經完全覆蓋了後來比特幣所使用的POW機制。
到了1998年,密碼學貨幣的完整思想終於破繭而出,戴偉(Wei Dai)、尼克·薩博同時提出密碼學貨幣的概念。其中戴偉的B-Money被稱為比特幣的精神先驅,而尼克·薩博的Bitgold提綱和中本聰的比特幣論文裡列出的特性非常接近,以至於有人曾經懷疑薩博就是中本聰。有趣的是,這距離後來比特幣的誕生又是整整10年時間。

技術發展

這裡寫圖片描述
在二十一世紀到來之際,區塊鏈相關的領域又有了幾次重大進展:首先是點對點分散式網路,1999到2001的三年時間內,NapsterEDonkey 2000BitTorrent分別先後出現,奠定了P2P網路計算的基礎。
2001年另一件重要的事情,就是NSA釋出了SHA-2系列演算法,其中就包括目前應用最廣的SHA-256演算法,這也是比特幣最終採用的雜湊演算法。應該說說到了2001年,比特幣或者區塊鏈技術誕生的所有的技術基礎在理論上、實踐都被解決了,比特幣呼之欲出。
在人類歷史中經常會看到這樣的現象,從一個思想、技術被提出來,到它真正發揚光大,差不多需要30年左右的時間。不光是技術領域,其他如哲學、自然科學、數學等領域,這種現象也是屢見不鮮,區塊鏈的產生和發展也是遵從了這個模式。這個模式也很容易理解,因為一個思想、一種演算法、一門技術誕生之後,要被人消化、摸索、實踐,大概要用一代人的時間。

比特幣的誕生:區塊鏈1.0

這裡寫圖片描述
中本聰在2008年11月的時候發表了著名的論文《比特幣:點對點的電子現金系統》,2009年1月緊接著用他第一版的軟體挖掘出了創始區塊,包含著這句:“The Times 03/Jan/2009 Chancellor on brink of second bailout forbanks.”,像魔咒一樣開啟了比特幣的時代。瞭解比特幣歷史的人應該比我還熟悉。對於比特幣的發展過程,有幾個我認為重要的時間節點:
2010年9月,第一個礦場Slush發明了多個節點合作挖礦的方式,成為比特幣挖礦這個行業的開端。要知道,在此之前的2010年5月,1萬比特幣才值25美元,如果按照這個價格來計算,全部的比特幣(2100萬)也就值5萬美元,集中投入挖礦顯然是沒有任何意義的。因此,建立礦池的決定就意味著有人認定比特幣未來將成為某種可以與真實世界貨幣相兌換的,具有無限增長空間的虛擬貨幣,這無疑是一種遠見。
2011年4月,比特幣官方有正式記載的(https://bitcoin.org/en/version-history)第一個版本:0.3.21釋出,這個版本非常初級,然而意義重大。首先,由於他支援uPNP,實現了了我們日常使用的P2P軟體的能力,比特幣才真正能登堂入室,進入尋常百姓家,讓任何人都可以參與交易。其次,在此之前比特幣節點最小單位只支援0.01比特幣,相當於“分”,而這個版本真正支援了“聰”。可以說從這個版本之後,比特幣才成為了現在的樣子,真正形成了市場,在此之前基本上是技術人員的玩物。

比特幣發展史

這裡寫圖片描述
2013年,比特幣釋出了0.8的版本,這是比特幣歷史上最重要的版本,它整個完善了比特幣節點本身的內部管理、網路通訊的優化。也就是在這個時間點以後,比特幣才真正支援全網的大規模交易,成為中本聰設想的電子現金,真正產生了全球影響力。
事情總是沒有那麼一帆風順,在最重要的0.8版本,比特幣引入了一個大bug,所以這個版本釋出以後比特幣短時間就出現了硬分叉,導致整個比特幣最後不得不回退到舊的版本,這個也導致了比特幣價格產生大幅下跌。
比特幣後面的發展被越來越多的人所熟知,例如:世界各國對它的態度、算力的增長——2016年1月達到1EH/S,以及在Github上超過了1萬個相關的開源專案,都證明比特幣生態環境已經完全成熟了。

從上面這些角度去看比特幣的歷史,也許你會產生和我相同的感受:不管中本聰的魔咒有多麼強大,數字/密碼學貨幣多麼有前途,還要依靠軟體本身一點一滴的發展。如果軟體本身有致命bug,最終整個的系統都會變得毫無意義。現在大家能看到越來越多的虛擬貨幣,各種各樣的ICO,我希望給大家傳遞的資訊是,至少要看一看它們軟體水平怎麼樣,不然的話跟龐氏騙局區別不大——軟體好,才是真的好。

以太坊的誕生:區塊鏈2.0

這裡寫圖片描述
Vatalik Buterin(後來被大家尊稱為”V神”的那個天才程式設計師)於 2013 年末釋出了以太坊的白皮書.
以太坊的設計的目標就是區塊鏈2.0,是一個全球範圍內的分散式計算機,有著堪稱完美的路線圖和系統結構。當然,最終能不能實現其設計目標,還有待於觀察。

區塊鏈的進一步爆發

這裡寫圖片描述

區塊鏈3.0時代的到來

這裡寫圖片描述

在基於智慧合約等基礎設施構建上,隱藏了底層技術的複雜性,更多區塊鏈技術轉移到應用的落地上,而區塊鏈3.0的代表就是柚子EOSArcBlock,小蟻NEO,比原鏈BTM等。

區塊鏈未來

這裡寫圖片描述

總結

區塊鏈1.0:沒有任何的應用功能,以數字貨幣回報為王。
區塊鏈2.0:智慧合約為上層應用開發提供基礎設施支援。區塊鏈2.0就是可程式設計區塊鏈。以以太坊為代表,在網際網路上搭建作業系統,它只是提出了一個概念,並沒有實現真正的應用,或者說不滿足應用要求。區塊鏈2.0最大的貢獻就是通過智慧合約來徹底顛覆了傳統貨幣和支付的概念。
區塊鏈3.0區塊鏈2.0對數字身份、智慧合約等基礎設施進行了構建,在此基礎上,隱藏了底層技術的複雜性,應用開發者可以更多地專注在應用邏輯及商業邏輯層面。也就是進入了區塊鏈3.0時代,標誌就是出現了Token(Token是區塊鏈網路上的價值傳輸載體,也可以理解為通證或代幣。)。

相關文章