Solidity
當乙太坊 2.0 可能會改變 15 秒的區塊時間時,不可變合約會發生什麼?
需要有時間系統來處理其功能過程的不可變合約大多基於 block.number 系統。他們假設每個塊之間大約有 15 秒,因此計算出相當於他們想要的時間的塊數。但隨著權益證明的引入,乙太坊 2.0 可能會改變 15 秒的阻塞時間。
那麼這是否意味著當乙太坊 2.0 到來時大多數智能合約將變得過時?以及你建議人們應該如何處理這個問題來發布一份能夠在 2.0 更新後繼續存在的智能合約?甚至確定 2.0 會影響 15s 嗎?
PS:目前我發現最好的選擇是有一個函式可以修改一個 NUMBER_OF_BLOCKS 狀態變數,並在 2.0 到來時增加或減少它。此功能可能會受到限制,只能呼叫一次或兩次以防止濫用。
15 秒的阻塞時間是錯誤的假設,使您的問題無效。2 年前,乙太坊的區塊時間為 12 秒。它不是標準的,並且在較長時間內波動很大。
您不應將基於時間的條件與塊號聯繫起來。