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

2022-09-05 22:00:32 字數 1076 閱讀 5334

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

首先,位元幣遵守最長鏈原則,即以最長的鏈為主鏈,什麼意思呢?有時會發生有多人幾乎同時算出答案進行新塊打包的情況,假設有2個人同時打包新塊,那麼區塊鏈就會產生分支。

此時,甲鏈成為最長鏈,此時甲鏈最有希望成為主鏈,所有人轉向甲鏈進行計算,乙鏈將被廢棄。那有人說,我就不去甲鏈,我就在我底下這條鏈往下走,行不行?其實也可以,但問題是全網的基本原則都是找最長鏈,除非你自己乙個人可以對抗其餘所有人,你乙個人造的鏈比其他所有人一起造的鏈更長,從而成為主鏈,否則就是在做無用功。

有了最長鏈原則,就可以防止篡改了。剛才我們假設某人想要刪掉自己的一條支付記錄,a付給b十個位元幣。

篡改偽造的唯一方法,是從這條記錄之前的塊,重新計算,重新打包。

新塊裡不含a付給b十個位元幣這條資訊,可是偽造了之後別人不承認,為什麼?因為這條鏈不夠長,於是他需要在這條鏈上面繼續算,什麼時候他算的比全網其他人算的還要長了,你的鏈成為主鏈,才算偽造成功了。

從理論上來講,你是可以進行改動的,但是別人不承認,除非你的計算能力超過了全網其餘所有的人,你偽造的鏈成為主鏈。

位元幣就是通過這種方法來防止篡改,即你一旦想篡改,便是跟全網的人進行對抗。

想要篡改的塊後面的鏈越長,篡改的難度就越大,所以一般大額的交易都要多等幾個塊,比如說等6個塊之後,我們就認為基本上沒有可能再去進行篡改了。

今天就聊到這裡,我們下期見!

如何讓歷史記錄不記錄敏感命令

有時候為了伺服器安全,防止別人窺探我們輸入的命令,我們可以清空歷史記錄,而更多的時候,我們選擇的是在輸入特殊命令時候,強制歷史記錄不記住該命令。實驗方法 先執行export histcontrol ignorespace 命令,然後依次輸出ls tra pwd和service mysqld star...

如何得到IE的歷史記錄和清除IE的歷史記錄

iurlhistorystg enumurls 該方法返回乙個ienumstaturl介面指標,後者用來列舉ie的歷史記錄。lresult ienumstaturl next ulong celt,lpstaturl rgelt,ulong pceltfetched 引數說明 celt意義不明,不能...

如何得到IE的歷史記錄和清除IE的歷史記錄

相關的介面 iurlhistorystg ienumstaturl iurlhistorystg2 iurlhistorystg enumurls 該方法返回乙個ienumstaturl介面指標,後者用來列舉ie的歷史記錄。lresult ienumstaturl next ulong celt,l...