深刻了解區塊鏈安全
上一節爲你們講解了,區塊鏈技術本質上是分佈式帳本系統,它的誕生是爲了解決信任問題,下降信任成本的。這一節,咱們將從這個概念展開,進行區塊鏈技術的深層討論。網絡
咱們首先回顧一下第一節中網購的例子,其中消費者和賣家之間,是經過購物平臺創建信任的。若是沒有這個中介,兩個陌生人之間的交易是很難達成的。在其中,購物平臺就體現了它在傳統商業中「信任中介」的做用。信任中介還能夠是大型的金融機構(銀行等)或政府部門等機構。維持這樣的傳統信任中介,會耗費大量的財力、人類,形成資源的大量浪費。架構
設想一下,若是傳統的信任中介消失,陌生人間的信任問題有沒有可能被低成本的解決?答案是有可能被解決的,區塊鏈技術即是其中的一個嘗試性解決方案。分佈式
區塊鏈技術的工做原理是將互聯網上的用戶節點互相鏈接起來,全部在這個區塊鏈架構上發佈的信息都會被加密成區塊,而後被每個用戶節點接收並備份(也就是說在這個區塊鏈中的每個用戶,均可以查詢歷史上的每個數據)。此後,舊的加密信息會不斷和新數據被打包成新區塊,新區塊將被髮布到網絡中並被全部用戶節點備份。區塊之間按照時間順序鏈接,從而生成永久的不可逆的數據鏈。區塊鏈
用區塊鏈技術結合第一節的例子,在理想狀況下買家A確認購買並付款以後,會向全網大喊:「我已經下了訂單並把錢交給賣家C啦」。賣家一樣會在收到錢後對着全網大喊:「A的錢已經收到,我已經發貨啦」。買家在收到貨以後,再向全網大喊:「貨收到啦,我很滿意」。以上所有過程信息被全網無差異記錄,交易被確認完畢。加密
因爲這條鏈上的所有信息都被每個用戶節點無差異記錄,區塊鏈便造成了一個受所有用戶監督的信息系統,所以經過區塊鏈技術理論上能夠將交易過程當中全部權確認的環節取消。這是區塊鏈技術目前最迷人的地方,但也是它目前的主要發展制約之一。spa
其制約主要體如今,理論狀況是一種理想化的環境,但在現實環境中,若是交易過程無權威中心代理,如何保證每筆交易的有效性和準確性?3d
現實環境中主要會碰到兩類問題,第一類問題是,信息通道是否安全可靠的問題(被稱爲「兩軍問題」),其本質是網絡安全問題;第二類問題是,用戶節點惡意廣播錯誤信息問題(被稱爲「拜占庭將軍問題」),其本質是惡意用戶問題。因爲涉及到大量技術問題,這裏不對這兩個問題細節進行展開。代理
兩軍問題雖然理論上無解,但目前仍能夠經過相對安全的通訊協議解決。blog
區塊鏈技術目前面對的最本質的問題只剩一個,這就是「拜占庭將軍問題」。針對這個問題,區塊鏈技術必須制定一個容錯方案,從而使整個區塊鏈網絡在有惡意廣播的狀況下仍能正常工做。這個容錯方案,被稱爲「拜占庭容錯」。
咱們在這裏不講拜占庭容錯的具體過程和細節,只說結論。咱們將網絡中全部誠實的用戶節點數設爲N,將全部惡意用戶節點數設爲M,只有當N>3M時(至少N=3M+1時),整個區塊鏈網絡才能包容惡意節點正常工做。
這個代價是很是高的,由於在一個公共網絡中,誰也沒法保證誠實節點數永遠大於3倍惡意節點數。而一旦這個邊界被打破,整個區塊鏈網絡的信用基礎將不復存在。
總結一下
今天你須要記住的幾個知識點:
一、區塊鏈是解決去除傳統「信任中介」的一種嘗試性方案。
二、區塊鏈技術提出的是一種信息全網同步無差異備份,接受全網監督的去中心化解決方案。
三、區塊鏈目前是一種理想化技術,它的實現要面臨「拜占庭將軍問題」。
本節爲讀者深刻講解了區塊鏈技術運做原理以及它目前面對的本質制約問題。下一節,咱們將經過目前最成功的區塊鏈應用比特幣的案例,來爲你們解析一下它是如何解決目前區塊鏈中的問題的。