您如何為新的原始 tx 創建腳本?
有人可以詳細說明如何做到這一點,這與真實的關聯交易相關,以便 n00b 可以理解嗎?它只是從原始 tx 中複製並粘貼前一個 tx 的特定可辨識部分還是更精細?
好吧,事實證明我的研究已經讓我回答了我自己的問題,主要是從這裡開始,儘管它確實缺乏一些解釋或沒有解釋,我認為,盡可能清楚。所以這是我的閱讀/解釋/翻譯。(如果需要,請轉到該頁面以查看我的數據來源)。
注意:在“鎖定”或“啟動”中添加“segwit”後,此過程可能已更改。我不能說那個。
該頁面的報價:
最終的 scriptSig 包含簽名以及源地址的公鑰 (1MMMMSUb1piy2ufrSguNUdFmAcvqrQF8M5)。這證明我可以使用這些比特幣,使交易有效。
第 1 步。 給定交易中的簽名將開始
473044
(這些是我所看到的標準)。第 2 步。 然後您必須附加
0120
到該數字的末尾才能獲得4730440120
旁注:在舊交易中證明了這一點的變化,並且可能仍然存在,您沒有輸入,而是輸入了不同的數字。我無法解釋和解釋這些實例,只是說“01”將其指定為第一個整數,而“20”指定了 32 位的整數長度(“20”為十六進制,只需將其轉換為整數即可得到 32)。32 位表示有 64 個十六進製字母數字字元(0-9 和或 af)。
**第 3 步。**然後您必須從 ECDSA 簽名中附加“r”的十六進制值(即 2cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff713),結果是:
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff713
第 4 步。然後將“0220”附加到上一個程式碼的末尾,結果是
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff7130220
邊注:僅添加可能存在或已經存在於整個區塊鏈的先前交易中的“0220”也有例外。我可以用來解釋它們的唯一工具是“02”是指“第二個整數”,“20”表示 32 位的整數長度(“20”是十六進制,只需將其轉換為整數得到 32)。32 位表示有 64 個十六進製字母數字字元(0-9 和或 af)。這就像“0120”一樣。因此,如果有第三個整數,我認為它前面會帶有“03”,並且如果該整數長於或短於 32 位(或 64 個十六進製字母數字字元),則“20”應更改為十六進制值的一半十六進製字母數字字元的數量。數一數,除以二,
**第 5 步。**然後您必須附加 ECDSA 簽名中的“s”值(我不會在這篇文章中涉及),這會
6c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e82
導致:47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff71302206c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e82
**第 6 步。**接下來您附加一個“01”,即“SIGHASH_ALL”。我不知道它的真正含義或完全代表什麼。
**步驟 7.**附加“41”,即“Pushdata41”。我不知道真正的意思或完全代表什麼。
**第 8 步。**附加“04”以引用您要代表此交易來自的公鑰的公鑰類型。
注意:“04”是指特定的未壓縮“公鑰”。比特幣此時通常使用“02”。
**步驟 9.**附加 X 值,後跟公鑰的 Y 值,在這種情況下,值是:
14e301b2328f17442c0b8310d787bf3d8a404cfbd0704f135b6ad4b2d3ee7513
和10f981926e53a6e8c39bd7d3fefd576c543cce493cbac06388f2651d1aacbfcd
注意:如果您使用的是壓縮公鑰,則只會顯示第一個。
結果:
47304401202cb265bf10707bf49346c3515dd3d16fc454618c58ec0a0ff448a676c54ff71302206c6624d762a1fcef4618284ead8f08678ac05b13c84235f1654e6ad168223e8201410414e301b2328f17442c0b8310d787bf3d8a404cfbd0704f135b6ad4b2d3ee751310f981926e53a6e8c39bd7d3fefd576c543cce493cbac06388f2651d1aacbfcd
我沒有進入
S
或R
創作,因為我覺得它們應該在一個單獨的文章中完成以保持事情井井有條。