什麼是比特幣交易中的TimeLock?


TimeLock 或LockTime,在比特幣交易中,是選擇將交易添加到區塊鏈的特定時間的選項。該參數由用戶指示。

TimeLock,也稱為出塊時間,是我們在比特幣交易信息中找到的字段之一,可以用來推遲交易的處理日期。

這設置了礦工必須等待選擇它並將其添加到比特幣塊之一的最短時間或塊。

當提交交易的人設置了TimeLock 時,交易將保持鎖定狀態,直到達到區塊高度或時間。

例如,假設我們將TimeLock 設置為區塊高度714,636,當前高度為714,386,那麼交易將必須在內存礦池中等待250 個區塊才能被驗證。

只有在到達區塊714,636 之後,礦工才能嘗試將其添加到區塊中。

我們知道比特幣的出塊時間大約為10 分鐘,因此用戶將不得不等待2,500 分鐘,或多或少,或近42 小時(相隔幾小時幾乎為2 天)。

我們在哪裡可以找到它?

當我們在某些比特幣錢包(例如Electrum 或Bitcoin Core)中創建交易時,我們會找到一個寫著“LockTime”的選項。

特別是,在Bitcoin Core 中,我們可以找到確定何時確認交易的選項。而在Electrum 中,我們可以設置區塊時間和日期。

大多數時候我們不想使用這個功能,這就是為什麼在支持它的錢包中,它默認被禁用。

如果我們希望立即確認交易,那麼我們將一切保持原樣。這取決於內存礦池和我們為交易支付的佣金,以便在下一個區塊中確認與否,但至少不會有其他限制,例如TimeLock。

一些用戶不知道這個參數是如何工作的,在不知道的情況下輸入一個值,可能會阻塞幾天甚至幾個月。

最近在一個論壇中,一位用戶遇到了一個被阻止數週的交易的問題。仔細檢查後,他意識到該字段已啟動,並且他設置的阻塞時間比當前的要長得多。

在這種情況下,他決定等待,儘管總是可以在沒有此活動字段的情況下生成新交易,以便可以預先對其進行驗證,並且可以讓第二個交易無效。

它是如何使用的?

很明顯,在比特幣網絡上進行的大部分交易都不需要此功能,因此沒有設置TimeLock。

在這種情況下,我們將在加密貨幣瀏覽器中看到該參數設置為0,這是默認值。

比特幣瀏覽器鎖定時間

如果我們不希望我們的交易被阻塞到某個時間或區塊高度,我們必須做的是設置一個低於當前的區塊高度或一個低於交易時刻的日期(以UNIX 格式)。

這將使該字段默認為0x00000000。這將創建一個最終的交易。

否則,我們可以設置一個比當前時間更長的區塊時間,或者在你創建交易的日期和時間之後設置一個日期和時間。

可能在未來遙遙領先,因為如果我們設置單個塊或幾分鐘的時間,交易很可能表現為最終類型。

為什麼要使用它?

你肯定想知道這個參數的目的是什麼,因為如果我們想要現在處理事務,我們就這樣發送它,如果我們希望將來處理它,我們只需等待並在必要時創建它。

但是,在某些情況下,擁有這樣的東西可能會非常有趣。

使用TimeLock 的事務對於創建相同事務的人將來可能會改變主意的情況很有趣。

在這種情況下,用戶不想再進行交易,他可以簡單地添加一個沒有這個參數的新交易,“覆蓋”前一個。

新交易將使用與TimeLock 交易相同的輸入,導致當第一筆交易被確認時,由於條件已經改變,它不再有效。

當然,必須考慮到一旦新交易被確認,它將不再有效。只要兩者都保留在內存礦池中,那麼任何一個都可以被驗證。

另一個例子是,當你希望某個人在某個時間收到資金,但又不想知道時。我們所知道的延期付款。

例如,當用BTC 送生日禮物時(這將是一個非常好的禮物)。無需就進行交易的特定日期達成一致(我們都曾經忘記過生日),你只需創建一個帶有生日日期的日期即可。你甚至可以在交易中寫一條消息,讓事情更令人難忘。

最後,這允許我們在未來創建交易而無需記住,如果我們後悔,我們總是可以在特定日期或區塊之前撤消交易。

允許我們配置的選項

該參數允許我們建立兩種類型的配置,它們有其特定的用途。

UNIX時間

與許多計算機系統一樣,比特幣使用所謂的UNIX 時間。

這個時間單位的工作方式與我們習慣的不同。它是衡量自特定日期以來經過的時間的單位。

更準確地說,UNIX 時間測量從1970 年1 月1 日的00:00:000 到現在經過的毫秒數。

但是不要擔心這個細節,因為錢包為我們做了一切,並允許我們設置日期而無需知道這件事。僅當我們計劃手動創建交易或正在開發錢包時才重要。

塊高度

另一種選擇是使用鏈中的塊數來阻止交易,直到那時。

特別是,我們可以建立兩種類型的條件:

它在特定區塊內有效:例如,這允許我們說交易只能在特定區塊內獲得批准,在此之後它不再有效。如果由於某種原因(例如網絡擁塞太高)而未被批准,這會很有用。在某個區塊之後,我們不再關心它是否被確認,因此,最好將其作廢。使其在某個塊之後有效:這允許在某個塊之後對其進行驗證。我現在想不出任何具體的用途,但肯定有。特別是如果我們談論更複雜的實現,例如創建二階層,例如閃電網絡。

概括

TimeLock 是比特幣交易僅在特定時間或區塊高度後處理的條件。它對特定用戶的使用不是很重要,但是當我們談論第二層開發(例如閃電網絡)時會使用它。

資訊來源:由0x資訊編譯自CRIPTOTARIO。版權歸作者Criptotario所有,未經許可,不得轉載

Total
0
Shares
Related Posts