區塊鏈(英語:Blockchain或Block chain)是一種分散式資料庫,大家可能都有所耳聞的比特幣,核心技術用的就是它。區塊鏈是一串使用密碼學方法相關聯產生的資料塊,每一個數據塊中包含了一次網路交易的資訊,用於驗證其資訊的有效性和生成下一個區塊。用通俗的概念講,區塊鏈就是一本人人可記的賬。在一個公司或機構裡,多數人只有看賬的份兒,而只有少數受過專業訓練的人,才有權提筆記賬。
當然,區塊鏈並非傳統意義上的賬本,它在技術原理上有以下三個關鍵點:
第一,去中心化。一個踐行區塊鏈技術的網路中,其所涵蓋的每臺計算機均可讀取、新增記錄,從賬本這個角度講,他們就是共同記賬的人,而沒有權威人士從中指導、修正。
第二,非對稱加密。別看這本賬人人可記,可若非局內人,一定讀不懂。因為,在記賬過程中,每個人都遵從統一的加密規則,但讀取時,卻必須使用自己獨有的解密方式。因此,雖然每個人都儲存著這本不斷更新的賬,但能讀懂的部分,卻僅限於自己能解密的那一塊,也就是與自己相關的那一部分。
第三,時間印記。也就是時間戳(英語:Timestamp),是指字串或編碼資訊用於辨識記錄下來的時間日期。區塊鏈上的每一個區塊,是按照其所生成的時間按先後順序排列的,並經過集體認證,確認成立。而且,之前的記錄是無法被修改的。就像在一本賬裡,我們可以透過一個時間點之後的記錄,索引、驗證之前的內容。而這些內容一旦被確認,再行篡改就難上加難。
區塊鏈技術是維護一個不斷增長的資料記錄的分散式資料庫,這些資料透過密碼學的技術和之前被寫入的所有資料關聯,使得第三方甚至是節點的擁有者難以篡改。區塊(block)包含有資料庫中實際需要儲存的資料,這些資料透過區塊組織起來被寫入資料庫。鏈(chain)通常指的是利用Merkle tree等方式來校驗當前所有區塊是否被修改,這一點用過Git的碼農們早就熟悉了,回想一下如何修改Git的歷史記錄吧。
區塊鏈技術主要分為三大類,主要是公開、協作、私有。
公開區塊鏈(public blockchain)
例子:比特幣,Ethereum Frontier。公開區塊鏈上的資料所有人都可以訪問,所有人都可以發出交易等待被寫入區塊鏈。共識過程的參與者(對應比特幣中的礦工)透過密碼學技術以及內建的經濟激勵維護資料庫的安全。公開區塊鏈是完全的分散式。
亮點和痛點:公開區塊鏈完全分散式,具有比特幣的一切特點,然而需要有足夠的成本來維持系統執行,依賴於內建的激勵。目前來看公開區塊鏈中只有比特幣算是足夠安全的,如果和比特幣的演算法一樣,乙烷;沒有內建獎勵,乙烷;容易集中算力攻擊(比如只要突擊掃貨大批顯示卡之類),吃棗藥丸。公開區塊鏈上試圖儲存的資料越有價值,越要審視其安全性以及安全性帶來的交易成本,系統擴充套件性問題。
協作區塊鏈(federated blockchain)
例子:Hyperledger以及德勤等會計所嘗試的審計系統。參與區塊鏈的節點是事先選擇好的,節點間很可能是有很好的網路連線。這樣的區塊鏈上可以採用非工作量證明的其他共識演算法,比如有100家金融機構之間建立了某個區塊鏈,規定必須67個以上的機構同意才算達成共識。這樣的區塊鏈上的資料可以是公開的也可以是這些節點參與者內部。部分意義上的分散式。亮點和痛點:協作區塊鏈可以做到很好的節點間的連線,只需要極少的成本就能維持執行,提供迅速的交易處理和低廉的交易費用,有很好的擴充套件性(但是擴充套件性隨著節點增加又會下降),資料可以有一定的隱私。開發者在共識下有能力更改協議,沒有比特幣hard fork的問題,但是這也意味著在共識下,大家可以一起篡改資料。協作區塊鏈也意味著這個區塊鏈的應用範圍不會太廣,缺少比特幣的網路傳播效應。
私有區塊鏈(private blockchain)
例子:Eris Industries。參與的節點只有使用者自己,資料的訪問和使用有嚴格的許可權管理。近期部分金融機構公佈的內部使用的區塊鏈技術大都語焉不詳,不過很可能都在這個範圍內。
亮點和痛點:私有區塊鏈實際上是很迷惑的名詞,這樣的一個系統無非是傳統意義上的共享資料庫用上Merkle Tree等方式試圖說明其中的資料可校驗。這樣的資料庫早有成熟的解決方案, Merkle tree也只是很多成熟方案中的一種。這些專案很容易是“然並卵”。由於全是使用者說了算,裡面的資料沒有無法更改的特性,對於第三方也沒有多大的保障。因此很多私有區塊鏈會透過依附在比特幣的方式存在,比如定期將系統快照記錄到比特幣中。
一張圖告訴你區塊鏈的用途吧。
區塊鏈(英語:Blockchain或Block chain)是一種分散式資料庫,大家可能都有所耳聞的比特幣,核心技術用的就是它。區塊鏈是一串使用密碼學方法相關聯產生的資料塊,每一個數據塊中包含了一次網路交易的資訊,用於驗證其資訊的有效性和生成下一個區塊。用通俗的概念講,區塊鏈就是一本人人可記的賬。在一個公司或機構裡,多數人只有看賬的份兒,而只有少數受過專業訓練的人,才有權提筆記賬。
當然,區塊鏈並非傳統意義上的賬本,它在技術原理上有以下三個關鍵點:
第一,去中心化。一個踐行區塊鏈技術的網路中,其所涵蓋的每臺計算機均可讀取、新增記錄,從賬本這個角度講,他們就是共同記賬的人,而沒有權威人士從中指導、修正。
第二,非對稱加密。別看這本賬人人可記,可若非局內人,一定讀不懂。因為,在記賬過程中,每個人都遵從統一的加密規則,但讀取時,卻必須使用自己獨有的解密方式。因此,雖然每個人都儲存著這本不斷更新的賬,但能讀懂的部分,卻僅限於自己能解密的那一塊,也就是與自己相關的那一部分。
第三,時間印記。也就是時間戳(英語:Timestamp),是指字串或編碼資訊用於辨識記錄下來的時間日期。區塊鏈上的每一個區塊,是按照其所生成的時間按先後順序排列的,並經過集體認證,確認成立。而且,之前的記錄是無法被修改的。就像在一本賬裡,我們可以透過一個時間點之後的記錄,索引、驗證之前的內容。而這些內容一旦被確認,再行篡改就難上加難。
區塊鏈技術是維護一個不斷增長的資料記錄的分散式資料庫,這些資料透過密碼學的技術和之前被寫入的所有資料關聯,使得第三方甚至是節點的擁有者難以篡改。區塊(block)包含有資料庫中實際需要儲存的資料,這些資料透過區塊組織起來被寫入資料庫。鏈(chain)通常指的是利用Merkle tree等方式來校驗當前所有區塊是否被修改,這一點用過Git的碼農們早就熟悉了,回想一下如何修改Git的歷史記錄吧。
區塊鏈技術主要分為三大類,主要是公開、協作、私有。
公開區塊鏈(public blockchain)
例子:比特幣,Ethereum Frontier。公開區塊鏈上的資料所有人都可以訪問,所有人都可以發出交易等待被寫入區塊鏈。共識過程的參與者(對應比特幣中的礦工)透過密碼學技術以及內建的經濟激勵維護資料庫的安全。公開區塊鏈是完全的分散式。
亮點和痛點:公開區塊鏈完全分散式,具有比特幣的一切特點,然而需要有足夠的成本來維持系統執行,依賴於內建的激勵。目前來看公開區塊鏈中只有比特幣算是足夠安全的,如果和比特幣的演算法一樣,乙烷;沒有內建獎勵,乙烷;容易集中算力攻擊(比如只要突擊掃貨大批顯示卡之類),吃棗藥丸。公開區塊鏈上試圖儲存的資料越有價值,越要審視其安全性以及安全性帶來的交易成本,系統擴充套件性問題。
協作區塊鏈(federated blockchain)
例子:Hyperledger以及德勤等會計所嘗試的審計系統。參與區塊鏈的節點是事先選擇好的,節點間很可能是有很好的網路連線。這樣的區塊鏈上可以採用非工作量證明的其他共識演算法,比如有100家金融機構之間建立了某個區塊鏈,規定必須67個以上的機構同意才算達成共識。這樣的區塊鏈上的資料可以是公開的也可以是這些節點參與者內部。部分意義上的分散式。亮點和痛點:協作區塊鏈可以做到很好的節點間的連線,只需要極少的成本就能維持執行,提供迅速的交易處理和低廉的交易費用,有很好的擴充套件性(但是擴充套件性隨著節點增加又會下降),資料可以有一定的隱私。開發者在共識下有能力更改協議,沒有比特幣hard fork的問題,但是這也意味著在共識下,大家可以一起篡改資料。協作區塊鏈也意味著這個區塊鏈的應用範圍不會太廣,缺少比特幣的網路傳播效應。
私有區塊鏈(private blockchain)
例子:Eris Industries。參與的節點只有使用者自己,資料的訪問和使用有嚴格的許可權管理。近期部分金融機構公佈的內部使用的區塊鏈技術大都語焉不詳,不過很可能都在這個範圍內。
亮點和痛點:私有區塊鏈實際上是很迷惑的名詞,這樣的一個系統無非是傳統意義上的共享資料庫用上Merkle Tree等方式試圖說明其中的資料可校驗。這樣的資料庫早有成熟的解決方案, Merkle tree也只是很多成熟方案中的一種。這些專案很容易是“然並卵”。由於全是使用者說了算,裡面的資料沒有無法更改的特性,對於第三方也沒有多大的保障。因此很多私有區塊鏈會透過依附在比特幣的方式存在,比如定期將系統快照記錄到比特幣中。
一張圖告訴你區塊鏈的用途吧。