Bitcoin
智能合約中的鬆弛問題和時間
鬆弛問題說,在高層次上,不可能保證在任何給定時間點,所有誠實的礦工都看到完全相同的區塊鍊長度
$$ 1 $$. 另一方面,正如我們所知,智能合約中函式返回的值是區塊鏈共識的結果。
假設我們定義了一個函式time(),它在智能合約中返回目前時間,即“現在”。
問題:鬆弛問題如何影響函式*time()*返回的值?
$$ 1 $$. https://eprint.iacr.org/2017/149.pdf
now
不是絕對真實時間,只是最後一個開採區塊的時間戳。有了 的定義now
,就可以清楚地看出,鬆弛問題會像任何其他功能(或價值)一樣影響這一點,可能會有節點在特定時間不屬於共識的一部分,但無論大多數人同意是最後一個區塊,是什麼將time()
在執行的那一刻確定函式的值。這意味著其他鏈(分叉)可能對該功能具有不同的價值,但如果該鏈較短,它很可能會死亡,因為誠實節點將遵循最長的鏈。希望這可以幫助
now()
是特定區塊的礦工在區塊上給出的值。now()
已經是 Solidity 語言的構造。乙太坊協議為區塊傾斜提供了一些保證,
now()
礦工在他們的區塊被認為無效之前對其進行操作的能力有限。