Security
兩個合約之間的互動是否可能被另一個合約干擾?
例如:
- 合約 A 呼叫合約 B 以從 B 中檢索狀態值
2.合約A然後使用合約B提供的數據來創造修改價值
3.合約A將派生值作為更新狀態發送回合約B
另一個合約 C 是否有可能在第 1 步和第 3 步之間呼叫合約 B,可能會在不知道合約 A 的情況下更改狀態,而 B 在第 1 步結束和第 3 步開始之間實際上是空閒的?
如果這是不可能的,為什麼不呢?是什麼提供了這種安全性?
如果這是可能的,我會假設 A 可以使用某種互斥鎖來鎖定 B 的狀態,直到第 3 步完成。這是這種情況的最佳做法嗎?
如果步驟 1 到 3 在單個交易中執行,則無關的 C 合約不可能干擾 A 和 B 之間。
乙太坊保證在執行另一筆交易之前完成交易(所有儲存修改保存到乙太坊世界狀態)。