Solidity

從另一個合約中讀取儲存

  • May 24, 2018

是否可以從 EVM 中的另一個合約中讀取合約中的任何儲存點?我不在乎它是否是hackish。

我的膽量說這是不可能的,因為它可以讀取這樣的內部或私有變數,但我想確定。

合約不能讀取其他合約的儲存。他們能做的就是呼叫其他合約並獲得一個返回值。因此,如果其他合約提供“getter”,他們可以間接獲取儲存數據。

請注意,“隱私”不是原因。區塊鏈上的一切都是公開的,與內部訪問模型無關。

從理論上講,“讀取”另一個合約的儲存槽的另一種間接方式是讓外部方為其提供 Merkle 證明,以證明該合約針對最近的區塊雜湊進行驗證。然而,這相對難以實現,會消耗大量氣體,是非同步的,並且可能不值得付出努力。

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