Evm

jumpdest背後的原因是什麼?

  • April 6, 2019

我知道,它背後的實際原因只是增加了額外的安全層。

但是為什麼 EVM 甚至需要它呢?Asm 沒有它並且工作得很好。

EVM不需要它。就像你說的,它只是一個額外的安全層。

如果存在編譯器錯誤,堆棧上的程序計數器可以被任意值替換,則該JUMPDEST要求可能會或可能不會防止潛在的漏洞利用。

我不相信它的用處,因為如果發生這種情況,那麼在測試你的合約時事情就會出錯,而且你永遠不會在公共場合使用你的程式碼。此外,利用者可以很容易地看到所有JUMPDEST’s 在哪裡,並且仍然可以跳轉到任意任意JUMPDEST.

更正@2019-04-06:

‘s的存在JUMPDEST使得編寫將 EVM 字節碼轉換為 Solidity 程式碼的反編譯器變得稍微容易一些。

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