Script

Taproot PTLC:非多重簽名部分時間鎖定的支出條件

  • August 28, 2021

(Taproot環境)我想出的是以下邏輯:

$alice = A;
$bob = B;

pk($bob) || (pk($alice) && older(10))

參見 Minsc)。

我查看了在 Regtest 中工作的生成/生成的比特幣腳本。

我無法重現/驗證的是以下問題:

  • Bob 能否在單個交易中與不同合作夥伴(在本例中為 Alice 等合作夥伴)的合約中批量花費 UTXO?

基本上 Bob 根據上述條件創建一個地址,然後 James 或多個付款人將他們的 UTXO 發送到 Tapscript 合約。

Bob 現在想花掉收到的幣,但是為了減少費用,他想批量消費。因此,典型的交易將包含來自多個不同 Tapscript 的多個 UXTO。輸出是第 3 方地址 - 包括 Alice 的地址。

如果 Bob 無法進行這些交易,Alice 應該能夠在 10 個區塊后索取剩餘的 UXTO。

  • 啟動 Taproot 後,這是否可以在主網中重現?我錯過了什麼嗎?

是的,假設 James 向 Bob 發送了兩個具有以下支出條件的輸出:

pk($bob) || (pk($alice) && older(10))
pk($bob) || (pk($carol) && older(10))

Bob 可以通過僅用他的簽名單方面滿足第一個支出條件,在一次交易中一起花費這些 UTXO。一旦兩個 UTXO 中的任何一個獲得十次確認,Alice 或 Carol 也分別獲得單方面花費所述 UTXO 的能力。

如果 Bob 的交易tx_B沒有在那個區塊高度得到確認,例如 Alice 可以創建一個衝突交易,tx_A只使用她控制的 UTXO 作為輸入,並將資金發送到她自己的地址之一,而不是 Bob 試圖支付的任何地址。鑑於 Bob 的交易tx_B應該廣泛存在於網路上節點的記憶體池中,Alice 的交易tx_A將被已經在“先見安全”策略下看到的節點丟棄,tx_B因此在網路上的中繼很差,但 Alice 可以處理tx_A直接發給礦工。

或者,如果 Bobtx_B發出了可替換性信號,並且 Alice 向她附加了更高的交易費用,那麼中繼障礙將不適用,tx_A在這種情況下,它通常會取代 Bob 在節點記憶體池中的交易。

因此,雖然 Alice 和 Carol 能夠在 10 次確認後產生相互競爭的支出指令,但可靠地強制他們的交易優先於 Bob 的交易並非易事。

引用自:https://bitcoin.stackexchange.com/questions/108331