Transactions

從頭開始創建原始交易/

  • January 6, 2022

我目前正在學習比特幣技術。所以我想到了原始交易這個詞。有很多工具可以創建原始交易,但我想自己做這一切。

我的想法是編寫一個原始事務並在沒有 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 輸出。

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