區塊鏈要去中心化麼
區塊鏈(Blockchain)技術自身仍然在飛速發展中,目前還缺乏統一的規範和標準。Wikipedia 給出的定義為:
A blockchain—originally, block chain —is a distributeddatabase that maintains acontinuously-growing list of data records hardenedagainst tampering andrevision. It consists of data structure blocks—which hold exclusively data ininitial blockchain implementations,and both data and programs in some of themore recent implementations—with each block holding batches of individualtransactions and theresults of any blockchain executables. Each block containsa timestamp andinformation linking it to a previous block.
簡而言之,區塊鏈技術讓參與系統中的任意多個節點,把一段時間系統內全部資訊交流的資料,通過密碼學演算法計算和記錄到一個資料塊(block),並且生成該資料塊的指紋用於連結(chain)下個資料塊和校驗,系統所有參與節點來共同認定記錄是否為真。
01 區塊鏈本質
區塊鏈實質是由多方參與共同維護一個持續增長的分散式資料庫,也被稱為分散式共享賬本(Distributed Shared Ledger),其核心在於通過分散式網路、時序不可篡改的密碼學賬本及分散式共識機制建立彼此之間的信任關係,利用由自動化指令碼程式碼組成的智慧合約來程式設計和運算元據,最終實現由資訊互聯向價值互聯的進化,如圖1所示。
圖1 從傳統集中記賬方式(左)到分散式總賬(右)
區塊鏈是一種與傳統集中記賬方式不同的記錄技術。參與到區塊鏈系統上的節點,可能不屬於同一組織、彼此無需信任;區塊鏈資料由所有節點共同維護,每個參與維護節點都能複製獲得一份完整記錄的拷貝。與傳統的記賬技術相比,其特點包括:維護一條不斷增長的鏈,只可能新增記錄,而發生過的記錄都不可篡改;無需集中的控制而能達成共識,實現上儘量分散式;通過密碼學的機制來確保交易無法抵賴和破壞,並儘量保護使用者資訊和記錄的隱私性。
02 區塊鏈工作原理
所謂區塊鏈,正是由一個個區塊組成的鏈狀資料結構及儲存方式。每個區塊分為區塊頭和區塊體,區塊頭主要用來實現區塊連結的前一區塊雜湊雜湊值(Hash Value),而區塊體主要包括交易賬本,如圖2所示。
圖2 區塊鏈的賬本
以交易場景為例,區塊鏈工作原理如下:首先客戶端將發起的一筆交易經數字簽名後廣播給網路上其他節點並等待確認;網路中的節點對收到的資料記錄資訊進行校驗,通過校驗後,資料記錄被記錄到一個區塊中;全網所有接收節點對區塊執行共識演算法,區塊通過共識演算法過程後被正式納入區塊鏈中儲存,全網節點均表示接受該區塊。而表示接受的方法,就是將該區塊的隨機雜湊值視為最新的區塊雜湊值,新區塊將提供永久和透明的交易記錄並以該區塊鏈為基礎進行延長,實現資金轉移。
03 區塊鏈技術特點
具體來說,區塊鏈技術作為創造信任的機器,主要有以下特點:
分散式結構。區塊鏈構建在分散式網路基礎之上,賬本並不是集中存放在某個伺服器或資料中心,也不是由第三方權威機構來負責記錄和管理,而是分散在網路中的每一個節點,每一節點都有一個該賬本的副本,所有副本同步更新。
信任機制。區塊鏈技術通過數學原理和程式演算法,使系統運作規則公開透明,實現交易雙方在不需要藉助第三方權威機構信用背書下通過達成共識建立信任關係。
公開透明。區塊鏈對其上的節點可以做到開放、透明。任何人都可以加入區塊鏈,也能查詢區塊鏈上的區塊記錄;同時所有使用者看到的是同一個賬本,能看到這一賬本所發生和記錄的每一筆交易。
時序且不可篡改。區塊鏈採用帶有時間戳的鏈式區塊結構儲存資料,具有極強的可追溯性和可驗證性;同時由密碼學演算法和共識機制保證了區塊鏈的不可篡改性。
04 區塊鏈層次模型
區塊鏈技術的模型是由自下而上的資料層、網路層、共識層、激勵層、合約層和應用層組成,共有六層。
資料層、網路層、共識層這三層是區塊鏈的必要元素。
1)資料層:最下層是“資料層”,封裝了底層資料區塊的鏈式結構,以及相關的非對稱公私鑰資料加密技術和時間戳等技術,這是整個區塊鏈技術中最底層的資料結構。
2)網路層:中間是網路層,包括P2P組網機制、資料傳播機制和資料驗證機制等。
3)共識層:第三層是共識層,封裝了網路節點的各類共識機制演算法。
而激勵層、合約層和應用層不是區塊鏈的必要元素,一些區塊鏈應用並不完整地包含上面三層結構。
第四層是“激勵層”,將經濟因素整合到區塊鏈技術體系中來,包括經濟激勵的發行機制和分配機制等,主要出現在公有鏈當中。
第五層是“合約層”,封裝各類指令碼、演算法和智慧合約。
第六層是“應用層”,封裝了區塊鏈的各種應用場景和案例,未來的可程式設計金融和可程式設計社會也將搭建在應用層。
在區塊鏈加密技術出現之前,網際網路上的資訊拷貝起來是零成本的,數字資產具有無限可複製性,如果沒有可信賴的第三方監督,我們根本無法確認一筆數字現金是否被花掉,因此可能出現重複支付問題。
為了解決這個問題,區塊鏈參照了“拜占庭將軍問題(Byzantine failures)”[5]的演算法。該問題是一個協議問題,指拜占庭帝國軍隊的將軍們必須全體一致的決定是否攻擊某一支敵軍。問題是這些將軍在地理上是分隔開來的,並且將軍中存在叛徒,而將軍們只能依靠信使來傳遞資訊。如何才能防止受到叛徒欺騙而做出錯誤決策呢?數學家設計的演算法是讓將軍在接到其上一位將軍標有進攻時間的信件之後,寫上同意或反對並蓋上的自己的圖章,然後把信轉發給其他所有的將軍,在這樣的資訊週轉之後,最後會出現一個蓋有超過半數將軍圖章的資訊鏈,以保證將軍們在互不信任的情況下達成共識。
萊斯利·蘭伯特把拜占庭將軍問題引入點對點通訊。拜占庭假設是對現實世界的模型化,由於硬體錯誤、網路擁塞或斷開以及遭到惡意攻擊,計算機和網路可能出現不可預料的行為。拜占庭容錯協議必須處理這些失效,並且這些協議還要滿足所要解決的問題要求的規範。
區塊鏈的技術原理參考了拜占庭將軍問題的演算法,通過蓋戳的形式來進行公證。網路上的每一個參與者的電腦都會有一份總賬的備份,也都能在這本總帳裡記上一筆,並且所有的備份都是在實時的、持續的進行更新、對賬、以及同步著拷貝,即全網記賬,每個節點都可以來競爭蓋戳,互相認證。這使得一個不可信網路變成了一個可信的網路,使得所有參與者可以在某些事情上達成一致。
05 區塊鏈並不一定去中心化
理想化的區塊鏈系統,是由許許多多節點組成的點與點的網路結構,似乎既不需要中心化的硬體裝置,也不需要任何管理它的機構。在很多文獻中都提出區塊鏈是去中心化的(Decentralized),即整個網路沒有中心化的硬體或者管理機構,任意節點之間的權利和義務都是均等的,且任一節點的損壞或者失去都會不影響整個系統的運作。
需要指出的是,區塊鏈並不一定是去中心化的。實際上,軟體系統的網路架構一般有三種模式:單中心、多中心、分散式,Decentralized只表明不是單中心模式,它可能是多中心或弱中心,也可能是分散式的。把Decentralized翻譯成“去中心化的”可能與最早由國內“幣圈”所做出的翻譯偏差有關,實際上在台灣地區,大多譯為“分散式的”而不是“去中心化的”。因此,把Decentralized翻譯成“分散式”或者“多中心化”,可能更切合今天技術和金融場景應用的實際。
在人類社會的歷史上,資訊傳播的延遲和謬誤導致資訊不對稱,形成了各種中心化的強權組織和階級分化。雖然資訊社會特別是社交媒體的出現已經減弱了這種情況,但是目前仍無法達到絕對的資訊對稱。我們期待在區塊鏈搭建的機器社會中進行深刻且迅速的社會關係變革,形成絕對資訊對稱,但是至少目前在機器社會還難以實現,即不能完全去中心化。
2016年TheDAO受攻擊事件也表明,完全去中心化至少在現階段是不可行的。The DAO是一個基於以太坊公有鏈的眾籌專案,成為史上最大的眾籌專案。然而由於其智慧合約的漏洞,導致The DAO被黑客攻擊並轉移走價值6000萬美元的數字貨幣,最後不得不黯然落幕。這給以太坊生態系統帶來了很多負面影響。此次事件之後,很多人對區塊鏈的“去中心化”進行了反思:在挽回這個損失的過程中,原有的去中心化機制未能解決問題,最後還是通過“集中式”的方式,強制以太坊進行“硬分叉”完成交易回滾。
如果我們仔細研究中本聰的論文中,就會發現其中只有Peer-to-Peer(P2P),而沒有Decentralized一詞。業界也正在逐漸對區塊鏈並不一定去中心化形成共識。在2016年6月召開的W3C區塊鏈標準會議上,以太坊的核心開發團隊EthCore明確表示,不再使用Decentralized這個詞,而是用P2P、Secure、Serverless這類純技術性詞語。
但是如果簡單地宣稱去中心化,或會被誤讀成是在某種程度上存在著一種既想從事金融活動,又不願意接受金融監管的傾向。
——本文摘自《深度探索區塊鏈:Hyperledger技術與應用》
推薦閱讀
《深度探索區塊鏈》
Hyperledger技術與應用
ISBN:978-7-111-58932-7
作 者:張增駿 董寧 朱軒彤 陳劍雄
定 價:79.00元
出版時間:即將出版
內容簡介:
超級賬本執行董事Brian Behlendorf領銜推薦,資深一線區塊鏈專家聯合撰寫,區塊鏈和Hyperledger技術扛鼎之作;深度剖析區塊鏈框架Hyperledger Fabric 1.0的架構、核心技術、部署與應用開發。
活動推薦
第3屆《洞見區塊鏈·深度探索區塊鏈》技術沙龍(點選“閱讀原文”報名)
推薦閱讀
2017年資料視覺化的七大趨勢!
全球100款大資料工具彙總(前50款)
Q: 區塊鏈需要去中心化嗎?
歡迎留言與大家分享
請把這篇文章分享給你的朋友
轉載 / 投稿請聯絡:hzzy@hzbook.com
更多精彩文章,請在公眾號後臺點選“歷史文章”檢視
相關文章
- 為什麼區塊鏈提倡去中心化?區塊鏈中心化
- 區塊鏈去中心化和傳統去中心化的區別區塊鏈中心化
- 區塊鏈去中心化等特點區塊鏈中心化
- 區塊鏈100講:區塊鏈為什麼叫“區塊”“鏈”?區塊鏈
- 區塊鏈去中心化技術詳細介紹區塊鏈中心化
- 區塊鏈為什麼模組化?區塊鏈
- 談談GIFTO(GTO)區塊鏈的去中心化設計區塊鏈中心化
- 區塊鏈去中心化交易所原始碼|去中心化交易系統開發區塊鏈中心化原始碼
- 區塊鏈大火?區塊鏈究竟是什麼?區塊鏈
- 去中心化只是手段 區塊鏈目的是點對點交易中心化區塊鏈
- 區塊鏈鼻祖比特幣之2:可分割與去中心化區塊鏈比特幣中心化
- 去中心化區塊鏈錢包支付系統開發模式中心化區塊鏈模式
- 什麼是區塊鏈,簡單瞭解區塊鏈區塊鏈
- 區塊鏈公鏈“三元悖論”專題系列之去中心化(Decentralization)區塊鏈中心化
- 區塊鏈技術應用場景思考-去中心化儲存區塊鏈中心化
- 【Longhash資料分析】區塊鏈的去中心化是謊言嗎?區塊鏈中心化
- 區塊鏈每日一問 | 什麼是區塊鏈的“分叉”?區塊鏈
- 區塊鏈,中心去,何曾著眼看君王?用Go語言實現區塊鏈技術,透過Golang秒懂區塊鏈區塊鏈Golang
- 區塊鏈不只有去中心化:基於 IPFS 加密的去中心化資料應用落地分析區塊鏈中心化加密
- 程式設計師如何切入區塊鏈去中心化應用開發程式設計師區塊鏈中心化
- 區塊鏈去中心化DAPP系統開發技術(成熟技術)區塊鏈中心化APP
- 知名區塊鏈媒體:USDD代表了真正去中心化穩定幣區塊鏈中心化
- 什麼是區塊鏈改革“鏈改”?區塊鏈
- 區塊鏈鏈重組是什麼?區塊鏈
- 區塊鏈怎麼賺錢區塊鏈
- 區塊鏈「橋」是什麼?區塊鏈
- 區塊鏈101:區塊鏈的應用和用例是什麼?區塊鏈
- 什麼是區塊鏈,區塊鏈技術研發解決方案區塊鏈
- 海南區塊鏈交易所開發。去中心化交易所開發區塊鏈中心化
- Arweave區塊鏈私有化部署區塊鏈
- 區塊鏈知識,區塊鏈簡史區塊鏈
- 區塊鏈系列1-區塊鏈概述區塊鏈
- 區塊鏈 2.0:房地產區塊鏈(四)區塊鏈
- 區塊鏈含義是什麼 區塊鏈搭建開發公司哪家好區塊鏈
- 區塊鏈開發公司區塊鏈對銀行業意味這什麼?區塊鏈行業
- 圖解區塊鏈:14張圖看懂什麼是“區塊鏈技術”?圖解區塊鏈
- 區塊鏈溯源技術是什麼?區塊鏈溯源技術開發區塊鏈
- 區塊鏈區塊鏈