首頁>Club>
區塊鏈都是人為開發的,為什麼區塊鏈的資料任何人無法篡改?有沒有可能開發者預先設計好程式,使其在之後的區塊鏈運營中作弊?
17
回覆列表
  • 1 # 進擊吧程式猿

    首先糾正這下這個問題,不是說任何是無法修改,而是說修改成本高,如果系統中有人掌握了51%的算力,理論上是可以對資料進行修改的。

    我們先來看一張圖:

    區塊鏈技術中有下面幾個關鍵點:

    每個區塊鏈的ID的都是透過其內容生產,所以只要區塊內容發生變化,區塊鏈的ID就會改變

    每個區塊ID的生成內容中包括了上一個區塊鏈的ID,所以只要當前區塊鏈的內內容一改變,當前ID就會變化,那麼後面指向這個塊的 ID 也要變,這樣就會形成一個連鎖效應——一個塊被修改,後續的所有塊都要跟著一起改。於是導致了修改成本的提升。

    但是這種一處改,處處改的方式,並不代表不能篡改,而只是讓修改面比較大,讓你的改動麻煩一點。

    越舊的區塊的篡改會造成越大面積的修改,於是越舊的區塊就不容易篡改,就越安全。反之,越新的區塊就越不安全。

    有了以上區塊鏈ID生成方法的保證後,此時也不能說區塊鏈無法更改,只能說是成本相對高,但是如果此時生成ID很簡單,那這也是很容易重新計算的,而真正讓區塊鏈做到非常難篡改的是工作量證明的共識機制。

    工作量證明共識機制

    上面說了,如果ID生成非常簡單,更改資料也是可能的,因此,一個自然想法就是加大ID生成的難度。

    比特幣使用了 Proof-of-Work 工作量證明機制,也就是 " 挖礦 "。所謂的 " 挖礦 " 其實就是用大規模的計算來找到一個符合系統要求的區塊 ID。要找到符合條件的區塊 ID 只能透過暴力窮舉的方式,所以要付出大量的系統計算資源和電力。

  • 2 # 魏來已來

    1.看點:任何一個區塊都是經過經過工作量證明後新增進來的,同時經過了所有人的驗證確認的。甚至每一個區塊中的交易也是經過驗證確認的,比特幣網路的一筆交易花一筆錢都要能找到這筆錢從哪裡來的,所以改一個點是沒用的。

    2.看線:區塊鏈是鏈式結構 按時間順序,不可逆的連結在一起,修改任何一個區塊的資料,都會導致下一個區塊的關聯資料發生變化,下一個區塊的資料變化了,又導致下下個區塊資料變化,所以修改一個區塊資料,除非把後面的區塊資料全部修改 難度很大。

    3.看面:區塊鏈是分散式賬本,每個節點都有一份一樣的區塊鏈賬本,修改任何一個賬本的資料,都會導致和其他節點的賬本不一樣,不被大家認可。

    4.區塊鏈是開源的,原始碼大家都能看到,想在程式碼中隱藏後門也不太可能。

  • 中秋節和大豐收的關聯?
  • 失戀了,吃不下睡不著很難受,氣喘不過來氣全身痠疼,怎麼才能儘快走出來呢?