區塊鏈概況:什麼是區塊鏈

定義

區塊鏈技術自身仍然在飛速發展中,目前還缺乏統一的規範和標準。

wikipedia 給出的定義為:

A blockchain —originally, block chain —is a distributed database that maintains a continuously-growing list of data records hardened against tampering and revision. It consists of data structure blocks—which hold exclusively data in initial blockchain implementations, and both data and programs in some of the more recent implementations—with each block holding batches of individual transactions and the results of any blockchain executables. Each block contains a timestamp and information linking it to a previous block.

最早區塊鏈技術出現在比特幣項目。作為比特幣背後的分佈式記賬平臺,區塊鏈在無集中式監管的情況下,穩定運行了近八年時間,支持了海量的交易記錄,並未出現嚴重的漏洞。

注:比特幣歷史上唯一已知的漏洞事件曾導致比特幣的惡意增發,但問題很快被發現並修正,相關非法交易被撤銷。

公認的最早關於區塊鏈的描述性文獻是中本聰所撰寫的 比特幣:一種點對點的電子現金系統,但該文獻重點在於討論比特幣系統,實際上並沒有明確提出區塊鏈的定義和概念。在其中,區塊鏈被描述為用於記錄比特幣交易的賬目歷史。

區塊鏈概況:什麼是區塊鏈


圖 1.2.3.1 - 古老的賬本

記賬技術歷史悠久,現代複式記賬系統(Double Entry Bookkeeping)是由意大利數學家盧卡·帕西奧利,1494 年在《Summa de arithmetica, geometrica, proportioni et proportionalità》一書中最早制定。複式記賬法將對賬驗證功能引入記賬過程,提升了記賬的可靠性。從這個角度來看,區塊鏈是首個自帶對賬功能的數字記賬技術實現。

更廣泛意義地看,區塊鏈屬於一種去中心化的記錄技術。參與到系統上的節點,可能不屬於同一組織,彼此互不信任;區塊鏈數據由所有節點共同維護,每個參與維護節點都能複製獲得一份完整記錄的拷貝。

跟傳統的數據庫技術相比,其特點應該包括:

維護一條不斷增長的鏈,只可能添加記錄,而發生過的記錄都不可篡改;

去中心化,或者說多中心化,無集中的控制,實現上儘量分佈式;

可以通過密碼學的機制來確保交易無法抵賴和破壞,並儘量保護用戶信息和記錄的隱私性。

更進一步的,還可以將智能合約跟區塊鏈結合到一起,讓其提供除了交易功能外更靈活的合約功能,執行更為複雜的操作(實際上,比特幣區塊鏈已經支持簡單的腳本計算)。這樣擴展之後的區塊鏈,已經超越了單純數據記錄的功能了,實際上帶有點“普適計算”的意味了。

從技術特點上,可以看到現在區塊鏈技術的三種典型應用場景:

基本原理

區塊鏈的基本原理理解起來並不難。基本概念包括:

交易:對賬本狀態的改變,如添加一條記錄;

區塊:記錄一段時間內發生的交易和狀態,是對當前賬本狀態的一次共識;

鏈:由一個個區塊按照發生順序串聯而成,是狀態變化的日誌記錄。

如果把區塊鏈作為一個狀態機,則每次交易就是試圖改變一次狀態,每次生成區塊就是參與者對於其中包括的所有交易改變狀態的結果確認。

圖 1.2.3.2 - 區塊鏈示例

區塊鏈概況:什麼是區塊鏈


在實現上,首先假設存在一個分佈式的數據記錄本(這方面的技術相對成熟),這個記錄本只允許添加、不允許刪除。其結構是一個線性的鏈表,由一個個“區塊”串聯組成,這也是其名字“區塊鏈”的來源。新的數據要加入,必須放到一個新的區塊中來加入。而這個塊(以及塊裡的交易)是否合法,可以通過一些手段快速檢驗出來。維護節點都可以提議一個新的區塊,然而必須經過一定的共識機制來對最終選擇的區塊達成一致。

具體以比特幣為例來看如何使用了區塊鏈技術?客戶端發起一項交易後,會廣播到網絡中並等待確認。網絡中的節點會將一些等待確認的交易記錄打包在一起(此外還要包括此前區塊的哈希值等信息),組成一個候選區塊。然後,試圖找到一個 nonce 串放到區塊裡,使得候選區塊的 hash 結果滿足一定條件(比如小於某個值)。一旦算出來這個區塊在格式上就合法了,就可以進行全網廣播。大家拿到提案區塊,進行驗證,發現確實符合約定條件了,就承認這個區塊是一個合法的新區塊,被添加到鏈上。當然,在實現上還會有很多的細節。

比特幣的這種基於算力的共識機制被稱為 Proof of Work(PoW)。目前,要讓 hash 結果滿足一定條件並無已知的啟發式算法,只能進行暴力嘗試。嘗試的次數越多,算出來的概率越大。通過調節對 hash 結果的限制,比特幣網絡控制約 10 分鐘平均算出來一個合法區塊。算出來的節點將得到區塊中所有交易的管理費和協議固定發放的獎勵費(目前是 12.5 比特幣,每四年減半)。也即俗稱的挖礦。

很自然會有人問,能否進行惡意操作來破壞整個區塊鏈系統或者獲取非法利益。比如不承認別人的結果,拒絕別人的交易等。實際上,因為系統中存在大量的用戶,而且用戶默認都只承認他看到的最長的鏈。只要不超過一半(概率意義上越少肯定越難)的用戶協商,最終最長的鏈將很大概率上是合法的鏈,而且隨著時間增加,這個概率會越大。例如,經過 6 個塊後,即便有一半的節點聯合起來想顛覆被確認的結果,其概率將為 ,即低於 的可能性。

注:熟悉 Git 的人,應該會讚歎兩者在設計上的異曲同工之妙。

分類

根據參與者的不同,可以分為公開(Public)鏈、聯盟(Consortium)鏈和私有(Private)鏈。

公開鏈,顧名思義,任何人都可以參與使用和維護,典型的如比特幣區塊鏈,信息是完全公開的。

如果引入許可機制,包括私有鏈和聯盟鏈兩種。

私有鏈,則是集中管理者進行限制,只能得到內部少數人可以使用,信息不公開。

聯盟鏈則介於兩者之間,由若干組織一起合作維護一條區塊鏈,該區塊鏈的使用必須是有權限的管理,相關信息會得到保護,典型如銀聯組織。

目前來看,公開鏈將會更多的吸引社區和媒體的眼球,但更多的商業價值應該在聯盟鏈和私有鏈上。

根據使用目的和場景的不同,又可以分為以數字貨幣為目的的貨幣鏈,以記錄產權為目的的產權鏈,以眾籌為目的的眾籌鏈等。

區塊鏈概況:什麼是區塊鏈



分享到:


相關文章: