Lightning-Network

什麼是散列原像,因為它用於違規補救?

  • October 19, 2020

直到今天下午,我還認為反欺詐交易或違約補救措施建立在交易對手的退出交易之上。

顯然,它們建立在稱為“散列原像”的東西上。原圖是什麼來的?一旦交易對手試圖破壞支付渠道,如何以及為什麼可以使用它來創建交易?

在 Rusty Russell 的Deployable Lightning 論文的下圖中,您可以看到承諾交易及其輸出的視覺化:

在此處輸入圖像描述

對於通道中的每次付款,都會生成兩個承諾交易,一個給 Alice,一個給 Bob。Alice 和 Bob 都簽署了兩個承諾交易,因此它們都是有效交易(儘管它們中只有一個可以包含在區塊鏈中,因為兩個交易都使用相同的輸入)。

兩個交易都支付兩個輸出。Alice 擁有的交易(圖中左側,Commit TxA)支付以下兩個腳本:

  • Bob 可以在閒暇時使用的正常 P2PKH(或其 segwit 等價物)輸出。
  • Alice 在等待指定數量的塊(比如 100 個)後可以花費的輸出,如 強制執行的OP_CSV,或者如果 Bob 有一條數據散列到此輸出中的某個值,則 Bob 可以花費的輸出。我稱之為原像;在閃電網路的其他描述中,這是用於生成簽名的私鑰。

在 Bob 的交易中(右側,TxB),這些是相反的,有:

  • 使用 P2PKH 支付給 Alice 的輸出。
  • Bob 在等待 100 個塊後可以花費的輸出,或者 Alice 可以在任何時間使用前映像花費的輸出。

在這些輸出中,Alice 選擇阻止 Bob 花費她的輸出的原像(Revocation-A),Bob 選擇阻止 Alice 花費他的輸出的原像(Revocation-B)。他們可以使用大尺寸的隨機數,儘管他們可能都使用來自使用Rusty Russell 的 64 維 shachain生成的雜湊鏈的雜湊值,以允許緊湊儲存任何顯示的雜湊值,並為鏈添加一些初始隨機值。

每次 Alice 和 Bob 同意更新通道的狀態時,他們都會向對方展示他們放置在輸出上的通道先前狀態的雜湊鎖的原像,從而允許對方創建違規補救措施交易。

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