Bitcoin Forum
November 19, 2024, 03:11:08 AM *
News: Latest Bitcoin Core release: 28.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: [1]
  Print  
Author Topic: Что подписывается в транзакции?  (Read 300 times)
Ninazu (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0



View Profile
November 15, 2017, 12:30:05 PM
Last edit: November 15, 2017, 12:58:49 PM by Ninazu
 #1

Что-то не получается проверить сигнатуру транзакции.

Допустим есть транзакция
http://learnmeabitcoin.com/browser/transaction/json.php?txid=c586389e5e4b3acb9d6c8be1c19ae8ab2795397633176f5a6442a261bbdefc3a

У которой публичный ключ
Quote
039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8

А сигнатура
Quote
30450221008604ef8f6d8afa892dee0f31259b6ce02dd70c545cfcfed8148179971876c54a02207 6d771d6e91bed212783c9b06e0de600fab2d518fad6f15a2b191d7fbd262a3e01

Что используется в качестве дайджеста для верификации?

scriptSig текущей транзакции?
scriptPubKey выхода предыдущей транзакции?
PubKey?
Всё тело транзакции?

Что-то не одно из значений не проходит валидацию. Они претерпевают каких-то модификаций? Хешируются?

Судя из параметров signrawtransaction там еще разные варианты есть
       "ALL"
       "NONE"
       "SINGLE"
       "ALL|ANYONECANPAY"
       "NONE|ANYONECANPAY"
       "SINGLE|ANYONECANPAY"

В чём преймущество каждого из них, где они применяются, а где нет.
Ninazu (OP)
Newbie
*
Offline Offline

Activity: 58
Merit: 0



View Profile
November 15, 2017, 06:56:24 PM
 #2

Как понимаю за это отвечает BIP 143.

Нашел в примерах
https://github.com/bitcoin/bips/blob/master/bip-0143.mediawiki#native-p2wpkh

Все что до hash preimage понятно

Code:
    outpoint:     ef51e1b804cc89d182d279655c3aa89e815b1b309fe287d9b2b55d57b90ec68a01000000
    scriptCode:   1976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac
    amount:       0046c32300000000
    nSequence:    ffffffff

А вот тут вот не ясно:

Почему берется первый индекс входа? для outpoint и  nSequence. Что с нулевым входом делается?
Code:
outpoint = vin[1][txid] + vin[1][index]

Что такое scriptCode
Code:
scriptCode:   1976a9141d0f172a0ecb48aee1be1f2687d2963ae33f71a188ac

Откуда взялась сумма?
Code:
amount:       0046c32300000000


Coin-1
Legendary
*
Offline Offline

Activity: 2632
Merit: 2304



View Profile
November 17, 2017, 12:10:35 AM
Last edit: November 17, 2017, 02:12:38 AM by Coin-1
 #3

У которой публичный ключ
Quote
039d25ab79f41f75ceaf882411fd41fa670a4c672c23ffaf0e361a969cde0692e8
Это координата ИКС (32 байта) в схеме ECDSA secp256k1 и ещё один служебный байт в начале. Каким образом верифицируете подпись?
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!