Blocks

您可以使用區塊時間作為持續時間的衡量標準嗎?

  • April 6, 2021

我已經讀過,開採一個乙太坊區塊大約需要 12 秒。假設我在區塊 100 挖了一個合約,我可以設置一個只能在區塊 200 或更多區塊執行的函式嗎?因此在呼叫函式之前大約需要 1200 秒?

當網路擁塞時,探勘一個塊需要很長時間嗎?礦工可以操縱已經開采的區塊的出塊時間嗎?

block.number考慮到您正在考慮區塊探勘的平均時間,您可以將其用作持續時間的度量,這與網路擁塞無關。

順便說一句,另一個答案是指block.timestamp,這與您原來的問題不同。比較時間戳和塊時,您可以在此處找到更多資訊

是的,您可以這樣做,但這不是一種安全可靠的方法。

如果惡意礦工操縱區塊時間戳,您的風險不大,那很可能沒問題。否則,它不是。

文件

筆記

不要依賴 block.timestamp 或 blockhash 作為隨機源,除非你知道自己在做什麼。

時間戳和區塊雜湊都會在一定程度上受到礦工的影響。例如,採礦社區中的不良行為者可以在選定的雜湊上執行賭場支付功能,如果他們沒有收到任何錢,只需重試不同的雜湊。

目前區塊的時間戳必須嚴格大於上一個區塊的時間戳,但唯一的保證是它將位於規範鏈中兩個連續區塊的時間戳之間。

關於你的其他問題:

  • 據我所知,網路擁塞不應該影響出塊時間。
  • 惡意礦工總是可以操縱區塊鏈的狀態,但只是在一定程度上。如果您在檢查區塊後等待 15 個區塊被開採(典型的確認延遲),您可以假設該區塊是真實的並被所有礦工接受。

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