Go-Ethereum

乙太坊區塊鏈如何不可變?

  • May 15, 2018

我從我的乙太坊“Chaindata”目錄中刪除了一個文件,區塊鏈被重置,所有賬戶和探勘的區塊都消失了。此外,我可以將隨機文本添加到其中一個日誌文件中。

這如何證明區塊鏈的不變性特徵是合理的?

有什麼辦法可以防止從 Chaindata 目錄中刪除文件?

區塊鏈基於共識。如果您從本地節點更改數據,它不會更改整個分佈式區塊鏈的數據。您將擁有與其他人不同的區塊鏈。

如果你挖它,它基本上相當於一個分叉或一個私有區塊鏈。區塊鍊是強大且安全的,因為它由網路的每個節點共享,如果它在您的節點上不同,那麼它在您的節點上也是不同的。

你有一個私有區塊鏈,但你需要了解公共乙太坊區塊鏈才能了解它的不變性。

乙太坊區塊鍊是一個去中心化應用程序(Dapp)。除非您僅在一台電腦上執行私有區塊鏈,否則您的電腦上沒有乙太坊區塊鏈。你有它的副本。乙太坊區塊鏈實際上是在遍布全世界的成千上萬台電腦上複製的。如果你想知道實際的區塊鏈在哪裡,它在 51%(或更多)執行乙太坊區塊鏈節點的電腦上,但永遠不會在 49% 或更少,甚至在其中一台電腦上。

作為一個 Dapp,乙太坊區塊鏈通過將自身分散到太多位置的太多電腦上來保持其不變性,從而無法被惡意更改。您可以將區塊鏈視為一種集體體驗。然而,它得到了大量數學專業知識和先進的 Dapp 研究的支持。

乙太坊區塊鏈的不變性得到保證,因為有大量礦工(以及很快的偽造者)跟踪區塊鏈的賬本。分類帳是您的鏈數據目錄中的數據。您可以在其中一個節點(即您的電腦或電腦)上更改chaindata 中的文件,但區塊鏈上的其他節點會知道您擁有不同版本的區塊鏈並忽略您節點的版本。因此,不能通過在一台電腦上修改鏈數據來更改區塊鏈。

如果您的鏈數據被更改,它將無法與實際的乙太坊區塊鏈正確同步。在這種情況下,只需完全刪除鏈數據並重新同步。如果您與 Internet 的連接足夠好,並且您的電腦中有一個非常好的 SSD,那麼您應該能夠在一天內重新同步一個完整的節點。

如果您正在為一家公司執行私有區塊鏈,則需要至少三個非常安全的節點託管在三個獨立的伺服器上,以保持最低限度的不變性。那是因為(正如我上面提到的)你的區塊鏈存在於你 51% 或更多的電腦上。當您將更多節點引入您的私有乙太坊區塊鏈時,您會引入更多的安全性和不變性。但是,您不太可能達到公共區塊鏈的安全性和不變性級別。

如果您只需要一條私有區塊鏈來進行開發和測試,那麼一台伺服器上的一個節點就可以工作。請記住,一台伺服器上的一個節點無論如何都不是 dapp,因此不能是安全的或不可變的。

引用自:https://ethereum.stackexchange.com/questions/48555