從頭開始創建原始交易/
我目前正在學習比特幣技術。所以我想到了原始交易這個詞。有很多工具可以創建原始交易,但我想自己做這一切。
我的想法是編寫一個原始事務並在沒有 cli 的情況下通過網路廣播它。我只想深入了解比特幣原始交易。
為了簡單起見,我的交易有一個輸入和一個輸出。我得到的所有輸入如下:
#All the values entered here are for example. None need to be true. Version: 010000 Reverse of previous Tx hash: 8602122a7044b8795b5829b6b48fb1960a124f42ab1c003e769bbaad31cb2 Previous output index: 000000 Script size: 6a Script sig: 3044022............................. Output Count: 01 Value(in satoshi): 1000000 //Please check if it is written in correct format or not Script size: //To be known scriptPubkey: //To be known locktime: 00000000
問題是我不知道如何生成
scriptPubKey
以及如何在 Satoshi 中寫入值。您可能需要生成的資訊
scriptPubKey
是:Private Key: 94C54DFCAE5E4E64A82B21478A9A243039AA57650EC6395FEC4250ACF90C3902 Public Key: 033c6f7a45e7892df81329e453b9faf5bafef648dfd9bec321eecc8e65512b3c367
好的,不要急於阻止資源管理器。錢包是空的。😉
一種常見的 scriptPubKey 格式,稱為 Pay-to-Public-Key-Hash (P2PKH),具有以下形式:
OP_DUP OP_HASH160 <push of 20-byte public key hash> OP_EQUALVERIFY OP_CHECKSIG
公鑰的散列由成熟md-160(sha-256(壓縮公鑰))形成。
您可以在此處找到操作碼的十六進制編碼:https ://en.bitcoin.it/wiki/Script
金額應編碼為 8 個字節,採用 little-endian 格式。如果你想發送 100 萬聰,這將是
0x40420F0000000000
.順便說一句,您在範例交易中缺少“輸入計數:01”和序列號。
您連結的文章中的 scriptPubKey 是:
76a914f76bc4190f3d8e2315e5c11c59cfc8be9df747e388ac
解碼,這是:
OP_DUP OP_HASH160 [push 20 bytes 76bc4190f3d8e2315e5c11c59cfc8be9df747e3] OP_EQUALVERIFY OP_CHECKSIG
這和上面的完全一樣——一個 P2PKH 輸出花費到散列為 的公鑰上
76bc4190f3d8e2315e5c11c59cfc8be9df74
。您連結的文章不正確,當它說:
鎖定腳本——這是鎖定腳本的雜湊值,它指定了使用此輸出必須滿足的條件。
它指的是 P2SH 輸出,但範例中的輸出是 P2PKH 輸出。