區塊鏈【轉載】

轉自:https://yeasy.gitbooks.io/blockchain_guide/content/born/what.html
區塊鏈屬于一種去中心化的記錄技術。參與到系統上的節點,可能不屬于同一組織、彼此無需信任;區塊鏈數據由所有節點共同維護,每個參與維護節點都能復制獲得一份完整記錄的拷貝。
跟傳統的記賬技術相比,其特點應該包括:

  • 維護一條不斷增長的鏈,只能添加記錄,而發生過的記錄都不可篡改;
  • 去中心化,或者說多中心化,無需集中地控制而能達成共識,實現上盡量分布式;
  • 通過密碼學的機制來確保交易無法抵賴和破壞,并盡量保護用戶信息和記錄的隱私性。

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

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


image.png

基本原理

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

  • 交易(Transaction):一次操作,導致賬本狀態的一次改變,如添加一條記錄
  • 區塊(block):記錄一點時間內發生的交易狀態和結果,是對當前賬本狀態的一次共識。
  • 鏈(chain):由一個個區塊按照發生順序串聯而成,是整個狀態變化的日志記錄。
    如果把區塊鏈作為一個狀態機,則每次交易就是試圖改變一次狀態,而每次共識生成的區塊,就是參與者對于區塊中所有交易內容導致狀態改變的結果進行確認。


    image.png

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

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

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

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

,即低于
image.png

的可能性。

分類

根據參與者的不同,可以分為公開(Public)鏈、聯盟(Consortium)鏈和私有(Private)鏈。
公開鏈,顧名思義,任何人都可以參與使用和維護,典型的如比特幣區塊鏈,信息是完全公開的。
如果引入許可機制,包括私有鏈和聯盟鏈兩種。
私有鏈,則是集中管理者進行限制,只能得到內部少數人可以使用,信息不公開。
聯盟鏈則介于兩者之間,由若干組織一起合作維護一條區塊鏈,該區塊鏈的使用必須是有權限的管理,相關信息會得到保護,典型如銀聯組織。
目前來看,公開鏈將會更多的吸引社區和媒體的眼球,但更多的商業價值應該在聯盟鏈和私有鏈上。
根據使用目的和場景的不同,又可以分為以數字貨幣為目的的貨幣鏈,以記錄產權為目的的產權鏈,以眾籌為目的的眾籌鏈等。

誤區

目前,對區塊鏈的認識還存在不少誤區。
首先,區塊鏈不是數據庫。雖然區塊鏈也可以用來存儲數據,但它要解決的問題是多方的互信問題。單純從存儲數據角度,它的效率可能不高,筆者也不推薦把大量的原始數據放到區塊鏈上。
其次,區塊鏈不是要顛覆現有技術。作為基于多項已有技術而出現的新事物,區塊鏈跟現有技術的關系是一脈相承的,在解決多方合作和可信處理上多走了一步,但并不意味著它將徹底顛覆已有的商業模式。很長一段時間里,區塊鏈的適用場景仍需摸索,跟已有系統必然是合作共存的關系。

區塊鏈是第一個試圖自帶信任化和防止篡改的分布式記錄系統。它的出現,讓大家意識到,除了互聯網這樣的盡力而為的基礎設施外,我們還能打造一個彼此信任的基礎設施。
類似比特幣這樣的大規模長時間自治運行的系統,也為區塊鏈技術的應用開啟了更多遐想的空間。如果人與人之間的交易無法偽造,合同都能確保可靠執行,世界是不是更美好一些了呢?這是技術進步再次給人類發展帶來福利。
不提這種去中心化的金融系統是否能在現實中普及,在跨國交易、跨組織合作日益頻繁的今天,已經有了不少有意義的嘗試和參考。
更進一步,比特幣只是基于區塊鏈技術的一種金融應用(而且是直接嵌入區塊鏈中),區塊鏈技術還能帶來更通用的計算能力。HyperledgerEthereum 就試圖做類似的事情,基于區塊鏈再做一層平臺層,讓別人基于平臺開發應用變得更簡單。
另外,區塊鏈本身可以作為分布式存儲,也自然可以作為分布式計算引擎。可以想象,整個加入集群的設備都是計算引擎,大家通過付費來使用計算力,是不是就有點普適計算的意味了?
有理由相信,隨著更多商業應用場景的出現,區塊鏈技術將在未來金融和信息技術領域占據一席之地。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。