4-mavzu: Bitcoin protokoli
Download 0.54 Mb. Pdf ko'rish
|
- Bu sahifa navigatsiya:
- Tranzaksiyani imzolash
- Sniff spoof
OP_DUP
OP_HASH160 dab3cccc50d7ff2d1d2926ec85ca186e61aef105 OP_EQUALVERIFY OP_CHECKSIG va
76a914dab3cccc50d7ff2d1d2926ec85ca186e61aef105s88 hollarda hech qanday farq yo’q. Faqat 2-holda maxsus saqlash kodirovka ishlatilmoqda: 0x76 = OP_DUP 0xa9 = OP_HASH160 0x14 = 14 bayt ma`lumot keladi dab3cccc50d7ff2d1d2926ec85ca186e61aef105s88ac ...
Endi tranzaksiyani imzolasak bo’ladi:
Tranzaksiyaning imzosi yaratilgandan so'ng, qulfni ochish scriptini(unlocking script) haqiqiysi bilan almashtirib, tranzaksiyani yakuniy shakliga keltirish mumkin: sigscript = sign + "\01" + struct.pack(" len(public_key.decode("hex"))) + public_key.decode("hex") real_tx = (version + tx_in_count + tx_in["outpoint_hash"] + tx_in["outpoint_index"] + struct.pack(" tx_in["sequence"] + tx_out_count + tx_out["value"] + tx_out["pk_script_bytes"] + tx_out["pk_script"] + lock_time) return real_tx
Nima uchun tranzaksiyalarni imzolashimizni tushungandirsiz. Bu hech kim bizning xabarimizni o'zgartira olmasligi va uni tarmoq orqali boshqalarga jo'natmasligi uchun amalga oshiriladi, chunki xabar imzosi o'zgaradi va hokazo. E’tibor bergan bo’lsangiz, biz boshqa uzellarga yuboradigan haqiqiy tranzaksiyani imzolamadik, balki uning modifikasiyasini(ya’ni qulfni ochish scripti (unlocking script) o’rniga biz havola qilayotgan boshqa tranzaksiya chiqishining qulflash scripti(locking script) yozilgan
tranzaksiya varianti) imzoladik. Printsipial jihatdan, nima uchun bunday bo'lishi aniq: to'g'ri qulfni ochish scripti(unlocking script)ga ushbu imzo yozilsa yopiq doira hosil bo’ladi, ya’ni to'g'ri imzo uchun to'g'ri unlocking script kerak va qulfni ochish script(unlocking script) uchun to'g'ri imzo kerak. Shu uchun Satoshi murosaga keladi va "to'g'ri" bo’lmagan imzolardan foydalanishga ruxsat beradi. Shu sababli, tarmoqdagi kimdir bizning xabarimizni ushlab, qulfni ochish skriptini o'zgartirishi va o’zgartirilgan xabarni boshqa uzellarga yuborishi mumkin. Uzellarning hech biri buni tasdiqlay olmaydi, chunki imzo qulfni ochish skriptni(unlocking script) "himoya qilmaydi". Ushbu zaiflik " Transaction malleability" deb nomlanadi. Agar P2PKH kabi standart skriptlardan foydalanilsa, unda xavotirga hojat yo’q. Aks holda, ehtiyot bo'lish kerak.
Download 0.54 Mb. Do'stlaringiz bilan baham: |
ma'muriyatiga murojaat qiling