Contract-Design

EVM 是確定性的嗎?

  • January 11, 2022

與 JVM 或 CIL 之類的東西不同,EVM 被認為是確定性且可以理解的,因此當分散網路中的多個節點必須同時協同工作時。但是,EVM 也被認為是不可預測的,因為在實際執行之前我們不知道它會產生什麼結果,如下所示

但正如圖靈所證明的那樣,如果沒有實際執行(可能永遠執行),乙太坊無法預測智能合約是否會終止,或者它將執行多長時間。無論是偶然還是故意,都可以創建智能合約,以便在節點嘗試驗證它時它永遠執行。

這是兩個不同的概念嗎?

這是兩個不同的概念嗎?

儘管我們無法事先預測結果,但確定性意味著對於相同的起始條件,並且給定相同的輸入,將出現相同的結果,即使該結果是一個永遠執行的智能合約†。

它將以相同的方式永遠執行 - 遵循相同的執行路徑 - 在網路中的每個節點上,或者每次從相同的初始條件執行相同的實驗。

†僅限思想實驗。考慮到氣體限制,實際上不可能發生。

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