Pages:
Author

Topic: Помогите разобраться с SegWit - page 2. (Read 1557 times)

newbie
Activity: 58
Merit: 0
Quote
Я тебе советую не перепрыгивать через ступеньку а сперва разобраться что такое BIP16
то есть что было до внедрения этого изменения протокола, в чем заключается это изменение
и что стало лучше по сравнению с оригинальным концептом. Потом сегвит становится понятнее -
это дальнейшее развитие той же идеи что старый клиент проверяет тупо хэш, а новый клиент
кроме этого делает некоторые магические пассы.

Посмотрел BIP16

у входа scriptSig это результат подписи публичного ключа с опкодом подписи, приватным ключом подтверждающим владение кошельком
Я это увидел где-то так
Code:
scriptSig = sign(pubkey + OP_CHECKSIG, privKey), 

А у выхода scriptPubKey это (в самом простом случае без мультиподписи)
Code:
scriptPubKey =  OP_HASH160 + hash(pubkey + OP_CHECKSIG) + OP_EQUAL

Хотя я вижу и другие сценарии у выхода вроде
Code:
scriptPubKey =  OP_DUP + OP_HASH160 + hash(pubkey + OP_CHECKSIG) + OP_EQUALVERIFY + OP_CHECKSIG

Если правильно понял суть, то подпись рассчитывается не сразу

Как пример старой транзакции брал эту
http://learnmeabitcoin.com/browser/transaction/json.php?txid=7a160081db721c1f915d9d5bec8a66fb4b52583188d2dab91ef37264d3534b12

Как еще более старая транзакция до BIP16
http://learnmeabitcoin.com/browser/transaction/json.php?txid=d52e6e7fbc1b5d5bc9177947c0ab276f261a761266aeba69eae413e80055dc57

Преобразование адреса в хеш проверял тут
http://bitcoinvalued.com/tools.php

Quote
3QVitrqkY1ddvWqVhCwAZteERFfv2MZ2hz -> FA281A32566066CC8BCA5E9FCD4051C66C690279 -> 1PohyKMJz7KFqM94a7Ga9GHJGjPCWD6FyP
1pGcRWf6XVg3z7susY1nGMMfnhv3M3Zsf -> 08F094D5EAF2F1C52E572F17828EFE12E4C52398 -> 1pGcRWf6XVg3z7susY1nGMMfnhv3M3Zsf
sr. member
Activity: 770
Merit: 305
То что информации в блоке стало больше я уже понял, и что она считаться стало иначе. И теперь TXID статическая.  Если раньше vsizesize, то сейчас vsize <= size  и это размер который учитывается в контейнере блока.
А что за дичь txinwitness? Как они формируются?
http://learnmeabitcoin.com/browser/transaction/json.php?txid=06c543e4f1f2ff6448e2c370078ac80b1d1ab324aa9dbef8db2202313a70c643
Теперь в scriptSig находится merkle tree хеш этих txinwitness?
Что за вес блока?

Я тебе советую не перепрыгивать через ступеньку а сперва разобраться что такое BIP16
то есть что было до внедрения этого изменения протокола, в чем заключается это изменение
и что стало лучше по сравнению с оригинальным концептом. Потом сегвит становится понятнее -
это дальнейшее развитие той же идеи что старый клиент проверяет тупо хэш, а новый клиент
кроме этого делает некоторые магические пассы.
newbie
Activity: 58
Merit: 0
То что информации в блоке стало больше я уже понял, и что она считаться стало иначе. И теперь TXID статическая.  Если раньше vsizesize, то сейчас vsize <= size  и это размер который учитывается в контейнере блока.

А что за дичь txinwitness? Как они формируются?

http://learnmeabitcoin.com/browser/transaction/json.php?txid=06c543e4f1f2ff6448e2c370078ac80b1d1ab324aa9dbef8db2202313a70c643

Теперь в scriptSig находится merkle tree хеш этих txinwitness?

Что за вес блока?

sr. member
Activity: 770
Merit: 305
Оговорюсь сразу с С++ я не дружу. Поэтому курить исходники не посылайте. Но представление о информации, и технологиях применимых в программировании имеется, также как и принцип работы биткоина по старой схеме.

Если правильно понимаю то основная идея это вынесение подписи в отдельный тип блока. То есть в выходе остается отправитель и получатель, а подпись считается позже и сохраняется в отдельный безразмерный блок. Получается что-то похожее на сайдчейн. И еще добавляется какой-то SegWit адресс. Не понимаю как он обезопасит от фальшивых транзакций, ведь получается что транзакция добавляется в блок а только потом проверяется ее валидность.
Понимаешь неправильно.
Подпись не выносится в отдельный тип блока. И даже из транзакции она не выносится.
Просто подпись не учитывается при формировании txid, но при определении валидна транзакция или нет подпись учитывается.
newbie
Activity: 58
Merit: 0
Оговорюсь сразу с С++ я не дружу. Поэтому курить исходники не посылайте. Но представление о информации, и технологиях применимых в программировании имеется, также как и принцип работы биткоина по старой схеме.

Если правильно понимаю то основная идея это вынесение подписи в отдельный тип блока. То есть в выходе остается отправитель и получатель, а подпись считается позже и сохраняется в отдельный безразмерный блок. Получается что-то похожее на сайдчейн. И еще добавляется какой-то SegWit адресс. Не понимаю как он обезопасит от фальшивых транзакций, ведь получается что транзакция добавляется в блок а только потом проверяется ее валидность.

Pages:
Jump to: