區塊如何防篡改 讀懂區塊鏈核心 你才真正懂區塊鏈

2021-10-14 03:18:50 字數 3898 閱讀 7582

作者nature

出品ai機器思維

用科技限制人性——人性都是趨利的,有利益就會有造假,區塊鏈核心技術通過加密學技術防範了人為洩露與造假,通過雜湊函式的設計防範了資料篡改;通過分布式網路的點對點模式防範了單個中心的權利過大,避免其不受控制的為所欲為,實現了民主投票的機制;通過智慧型合約實現了法律約定,避免了法律糾紛,避免了人情關係。

整個區塊鏈體系都是在用科技手段解決人性問題,實現了信用價值網際網路,避免第三方中介的參與背書,提公升了生產力,從而把生成關係變得簡單極致,把生產效率大大提公升。

區塊鏈這套核心技術體系的組成並不是簡單的幾個概念和花圖形象說明就能深入理解其原理。雖然大家都知道區塊鏈是運用了密碼學技術提公升資料的安全性、防篡改,利用分布式技術實現了去中心化,防範單個人的權利過大以及為所欲為,提公升了信用價值共識的達成,但這些核心科技其實由來已久,每一項技術都比較複雜,只有深入了解其核心技術內涵才能真正讀懂區塊鏈原理。

本節重點給大家深入講解密碼學技術原理在區塊鏈上的應用價值,讀懂密碼學才能理解區塊鏈的威力之處。

區塊鏈上誕生的位元幣這個數字貨幣產物天然結合了密碼學技術,在金融領域已經感知到期技術應用的安全性便捷性等。其應用了密碼學雜湊函式,這個雜湊函式其實是乙個數學函式,由於其具有如下特性

1.輸入可以為任意大小的字串2.產生固定大小輸入3.對於n位的字串其雜湊值計算的複雜度為o(n)。關鍵點在於通過雜湊函式加密的可以建立資料結構,其建立的資料結構有一種雜湊指標,通過雜湊指標指向資料儲存位置及其位置資料的雜湊值的指標;

雜湊函式建立的資料結構中其價值點是其安全雜湊演算法(如位元幣應用的是安全雜湊演算法sha-256),雜湊指標防範了人為篡改行為。

究竟怎麼實現資料安全和防篡改?區塊鏈上的資料安全和防範篡改這些功能的實現,靠的是雜湊函式。雜湊函式的威力在於其具有碰撞阻力,也就是兩個值x 和y,x不等於y時通過雜湊函式運算h(x)=h(y)實現了不同的輸入得到相同的輸出。由於其輸入控制項包含任意長度的任意字串,其輸出空間有限,這樣人為找到碰撞值概率很小。

其二雜湊函式具有隱秘性,如果我們僅僅知道雜湊函式輸出y=h(x),我們沒有可行的辦法計算出輸入值x。正如我們拋乙個硬幣的實驗,如果拋硬幣的結果為正,我們會說此結果雜湊為「正面」;如果結果為反面,我們會說雜湊為「反面」。

但在我們沒有見到拋硬幣時,而只見到雜湊函式的輸出結果正面或反面時,我們如果問對手輸入的雜湊字串可能對手能猜出x輸入字串,但如果我們把x從兩個可能放大到取值來自乙個非常廣泛的集合,這時x輸入難度就很難猜出,同時僅僅通過幾個特點x就能找出輸出值將不會在發生,其概率分布難度係數加大。

1、碰撞阻力:如果無法找到兩個值在輸入x和y且x≠y ,而h(x)=h(y) 的情況,則稱雜湊函式h具有碰撞阻力。目前位元幣使用的 sha256 演算法,會有 2^256 種輸出,如果我們進行 2^256 + 1 次輸入,那麼必然會產生一次碰撞,事實上,通過理論證明計算2的128次冪都需要至少花費10的28次冪多年時間。人類迄今每台電腦在整個宇宙起源時便開始計算,到目前為止,他們找到碰撞的概率仍然無窮小。

2、隱秘性:如果我們僅僅知道雜湊函式的輸出y=h(x),由於x的輸入集合非常廣泛,我們沒有可行的辦法算出輸入值x。這成為雜湊函式的隱秘性。

3、通過雜湊函式的複雜度,我們可以看出很難通過乙個結果值y找到其對應的輸入值x。

通過上面雜湊函式三個特性大家就能感知到雜湊函式帶來的威力有多大。

雜湊函式依靠雜湊指標及資料結構的特性防範人為的造假,從而避免做壞事。任何對資料篡改的篡改都是有記錄可以尋找到的。雜湊函式是密碼學中的鋒利尖刀,在眾多應用中找到了一席之地,尤其在數字貨幣領域得到廣泛應用。不同的安全級別會要求不同的雜湊函式特性。

下圖中的雜湊指標是乙個不但可以指向資料儲存的位置,還可以幫助確認某個時間戳下該資料的雜湊值的指標。這個特性對防資料篡改很有價值。雜湊指標構建的資料結構特性決定了其防資料篡改的特性。雜湊指標不但可以告訴你資料儲存在什麼位置,並且還可以讓你驗證資料有沒有篡改過。如下圖1-1所示。

圖1-1雜湊指標

區塊鏈是借助雜湊指標生成的乙個鍊錶,而不是通過普通指標生成的,通過雜湊指標構建的乙個鍊錶,將這個鍊錶稱為區塊鏈,如下圖1-2所示區塊鏈。

圖1-2區塊鏈

在普通鍊錶中有一系列區塊,每個區塊既有資料也有乙個指向上乙個區塊的指標,但在區塊鏈中,上乙個區塊指標被置換為雜湊指標,這是區塊鏈與普通區塊的區別。通過這個區塊鏈上的雜湊指標不僅能告訴你上乙個區塊的值在**,還包含了該值的摘要資訊,從而使我們能夠驗證那個值有沒有改變。在區塊鏈鍊錶頭部儲存的第乙個資料區塊也就是創世資料區塊。

區塊鏈的這種資料結構設計其價值就是「防範篡改日誌」。如果我們建立乙個儲存很多資料的日誌資料結構,我們就可以將資料附加到日誌的末尾。

如果有人不懷好意,為了個人利益,要作惡,改變日誌前的資料,我們可以監測到。假設有人要篡改區塊鏈某個b區塊的資料,雖然壞人改變了某區塊b的資料,但區塊b+1的雜湊值(即整個區塊b的雜湊值)將不會再匹配。

原因是雜湊值具有碰撞阻力。我們可以監測到新的雜湊值與改變後的內容不會匹配。這樣人為篡改後會監測到區塊b中的新資料以及區塊鏈b+1中的雜湊指標存在不一致性。

如果壞人同時嘗試篡改下乙個區塊的雜湊值來掩蓋這次篡改資料的行為,他雖然可以這樣做,但由於區塊鏈到達鍊錶的頭部時也就是創世區塊時,這個方式會失敗。原因是創世區塊鏈是區塊鏈誕生的地方,其鏈頭部的雜湊指標儲存在壞人無法改動的地方,這樣就不能做到資料塊在不被監測的前提下,篡改任何區塊。

通過上面的分析大家可以看出,如果惡意破壞區塊鏈中的任意部位的資料,那麼將會導致下乙個資料塊的雜湊指標不正確。如果在區塊鏈中鎖定創世區塊鏈的頭部資料,那麼即使惡意破壞的人修改了所有雜湊指標使其與篡改過的資料一致,他也無法修改創世區塊鏈頭部資料,從而防範了壞人做壞事的篡改行為。

區塊鏈防篡改的核心科技技術在於其設計的創世區塊(也就是誕生的第乙個區塊,時間開始的地方)這個區塊是唯一不能篡改鍊錶頭部的指標。僅通過記住乙個雜湊指標,整個區塊鏈上鍊表上的防篡改雜湊值也同時被記住了。

——往期精彩——

什麼是區塊鏈

區塊鏈真正帶來的變革在哪?

品玩sas:**資料分析——概念、流程和報告撰寫

品玩sas:70年,人均預期壽命為什麼能增長一倍?

您的關注和在看是對我們最大的鼓勵!

區塊鏈100問 區塊鏈到底能不能篡改?

很難,但是能。區塊鏈技術剛出來的時候,目的就是為了防篡改的。而區塊鏈技術及應用發展至今,包括其被用於銀行安全結算等,都是因為其對外號稱是不可篡改的,即安全的。以位元幣為例,它採用的是sha256演算法,本質上是一種加密演算法,這個演算法基於的數學原理導致其是隨機分布的,即每乙個節點 散落 在不同的網...

開源 區塊鏈 區塊鏈如何補充開源

開源 區塊鏈 大教堂和集市是乙個經典的開源故事,由eric steven raymond於20年前撰寫。在故事中,埃里克 eric 描述了一種新的革命性軟體開發模型,該模型在沒有 或很少有 管理的情況下構建複雜的軟體專案。這個新模型是開源的。埃里克 eric 的故事比較了兩種模型 開源如此成功的某些...

區塊鏈 6 如何防止篡改歷史記錄?

在上一期中,我們了解了餘額檢查與雙重支付,今天來聊一下另乙個問題,假設有乙個人想要篡改位元幣記錄,他不可能偽造別人的簽名,但是可以刪除某一條記錄,比如說他本來付給了別人十個位元幣,現在他想把這個記錄刪掉,偽造篡改這條記錄,系統如何防止這件事的發生呢?首先,位元幣遵守最長鏈原則,即以最長的鏈為主鏈,什...