每個交易輸出不僅確定了一個公鑰,其實同時指定了一個指令碼。那指令碼是什麼?為什麼我們要用一個指令碼?在這一節我們要學習比特幣的工作控制語言,也叫指令碼。之後,我們就會懂得為什麼要用一個指令碼,而不是簡單地分配一個公鑰。
最常見的比特幣交易,就是透過某人的簽名去取得他在前一筆交易中獲得的資金。這種情況下,我們希望交易的輸出包含這樣的資訊:“憑藉地址X的所有者的簽名,才可以獲得這筆資金。”我們知道地址其實就是一個公鑰的雜湊值,所以僅僅說地址X並沒有告訴我們公鑰在哪裡,也沒有給我們一個檢查簽名的方法。所以,交易輸出必須這樣描述:“憑藉雜湊值為X的公鑰,以及這個公鑰所有者的簽名,才可以獲得這筆資金。”這實際上就是最常見的比特幣指令碼,如圖3.4所示。
圖3.4 P2PH指令碼範例
注:一個常見的比特幣輸出指令碼範例。
那麼誰執行這個指令碼?這一系列指令是如何完成的呢?秘密在於,交易的輸入包括了指令碼(而不是簽名)。為了確認一筆交易正確地獲取了上一筆交易所輸出的資金,我們把交易的輸入指令碼和上一筆交易的輸出指令碼串聯起來,這個串聯指令碼必須被成功地執行後才可以獲取資金。這兩個指令碼,一個是輸出指令碼(scriptPubKey),另一個是輸入指令碼(scriptSig)。輸出指令碼只是指定了一個公鑰(或是公鑰雜湊值的地址),輸入指令碼指定了一個對應公鑰的簽名。圖3.5就是兩個指令碼結合的案例。
Loading...
未載入完,嘗試【重新整理】or【關閉小說模式】or【關閉廣告遮蔽】。
嘗試更換【Firefox瀏覽器】or【Chrome谷歌瀏覽器】開啟多多收藏!
移動流量偶爾打不開,可以切換電信、聯通、Wifi。
收藏網址:www.peakbooks.cc
(>人<;)