Solidity

乙太坊虛擬機 (EVM) 如何隔離(沙盒)?

  • September 20, 2019

我一直在想這個問題:

為了實現 EVM 的隔離,使用了哪些技術?例如,它是否只是使用 linux 功能“命名空間”在自己的命名空間中作為獨立程序執行?可能是容器之類的東西?

我認為這裡隱藏的假設是像乙太坊“虛擬機”這樣的名字需要隔離。這是對 EVM 本質的誤解。

EVM 是臨時狀態機的規範。EVM 狀態是通過正確處理事務得出的。事務可以包括程式碼的部署和已部署程式碼的呼叫。程式碼本身由具有在 EVM 規範中定義的精確含義的 OPCODES 組成。

由於所有乙太坊操作都是確定性的,我們可以說給定相同的初始狀態和相同的輸入,正常執行的節點將計算相同的 EVM 狀態。

也許另一種理解這一點的方式是將 EVM 視為同意 EVM 狀態必須是什麼的節點的緊急非本地結論

如果一個人關心自己節點的完整性,那麼該節點可以在容器內執行,但這不是節點軟體本身的屬性,例如 Geth。

看看這個:https ://www.youtube.com/watch?time_continue=4&v=Za5lPKNV_Mk

希望能幫助到你。

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