關於區塊鏈的一些澄清

linghuyichong發表於2019-12-26

從開始研究比特幣原始碼算起,我接觸區塊鏈技術已經兩年多了,某種程度上也算是區塊鏈技術的老鳥了。一直專注於技術,所以對有些關於區塊鏈的表述不怎麼在意,昨天偶爾的和別人討論,我覺得我有必要總結一下,以便在以後關於區塊鏈進行更好的表述。

各種新聞媒體關於區塊鏈提的最多的,估計就是防止篡改了,針對防篡改,我主要想說明以下兩點:

源頭問題

但是我們在一些設計方案中,應用區塊鏈記錄資料時,可能經常遇到這種問題:如果資料上傳者就把資料改掉了或者說上傳者上傳錯誤的資料,區塊鏈有什麼辦法解決嗎?

對於此點,我想說的是,區塊鏈防止篡改是防止的記錄於其上的資料被篡改,對於在上傳到區塊鏈之前的資料錯誤,區塊鏈是沒辦法解決的。舉個例子,就像發哥的電影和平飯店,進到飯店裡的人都是和平的,但是飯店外的是發哥沒法保護的,同樣,如果一個人在和平飯店外受到傷害,然後再進到和平飯店,當然不能把這個傷害算成是和平飯店沒有讓人和平的能力。

另外,從“篡改”的字面意思來理解。篡改在百度百科中的解釋為:用作偽的手段對經典、理論、政策等進行改動和曲解。那麼篡改中有一個很重要的動作,就是改動。那麼回到上面的問題,如果從源頭就上傳假資料,並不是一種篡改行為,所以也就不是區塊鏈所能防範的。

51%算力攻擊問題

在區塊鏈的一些方案中,甚至還有這種問題,區塊鏈其實也不是安全的,它有51%算力的攻擊問題,沒法防止篡改。

對於提這種疑問的人,要麼是個半吊子,要麼就是為了發表點反對意見而發表的人。區塊鏈是為了達到一個最終一致性,同時因為多節點都有賬本的複製,所以能防止篡改。

在不同的區塊鏈系統中,並不都是51%算力攻擊問題。例如使用拜占庭演算法的,其實只能容忍不超過三分之一的節點,而比特幣則是不超過50%算力。而從實際的操作中,即使是三分之一的節點,也能有非常好的安全性。

另外,所謂防篡改,其實是相對的,這就和密碼學中對安全的定義是一樣的。就比如一個攻擊者,他要花費比特幣一半以上的算力來攻擊比特幣,那麼他多半就不會做這件事情了。

80%的人在說起區塊鏈原理的時候其實都是說的比特幣的原理,但是這兩者其實不能完全等同。

比特幣是第一個也是最成功的一個區塊鏈系統,是所有區塊鏈系統的鼻祖。區塊鏈技術是一類技術的統稱,甚至可以說是一門學科的統稱。區塊鏈技術是由比特幣最早發明使用,但是後面又有其它很多系統在發展演進。

比特幣的底層原理嚴謹、簡單、經典,使用最長鏈識別解決分叉問題。但是後續的以太坊就使用ghost來解決分叉問題。conflux等則使用DAG的結構。同樣,比特幣使用POW,但是在EOS中則使用的是DPOS。總的來說,講比特幣原理並不完全等同於區塊鏈原理。當然,比特幣是最好最經典的學習區塊鏈的教材。

作為一個IT技術人員,在努力提高自己技術的同時,其實也應該注意自己平時的技術表達,讓自己表達的更專業、更準確,和提升技術同等重要。

本作品採用《CC 協議》,轉載必須註明作者和本文連結
令狐一衝

相關文章