Author

Topic: Критичность храненея подписей в БЧ (Read 185 times)

sr. member
Activity: 770
Merit: 305
Является ли критичным обязательное хранение подписей в БЧ?
По идее если сеть так или иначе пришла к консенсусу по данным, то зачем хранить и хешировать подписи, если они не несут вроде никакой ценности уже?
Ценность как раз есть.
Вот подключается к сети новый участник и скачивает блокчейн.
Ему для этого надо проверить, что он скачивает тот блокчейн, который у всех остальных добропорядочных узлов в мире, а не тот, который ему подсовывает сосед-злоумышленник. А для этого нужно проверить в том числе что все транзакции во всех блоках валидные. А без подписей это не доказать.

Сеть не может прийти к консенсусу данных (это просто бессмысленный набор слов) - потому что сеть это просто много отдельных узлов. Это не какой-то единый мозг, надо понимать, что это скорее стая птиц. Снаружи кажется что это нечто единое. А на самом деле обеспечивается действиями каждого участника самостоятельно. Не стая птиц летит на юг. Каждая из птиц летит сама на юг, глядя на соседей и повинуюсь правилам/инстинктам

Надо еще добавить, что
1) существуют способы ускорения начальной проверки подписей - контрольные точки. Но по сути дела - это некий лайфхак
2) вынесение подписей в сегвите - это не способ избавиться от подписей в блокчейне, а костыль, позволяющий без изменения консенсуса увеличить количество транзакций в блоке. То есть тоже никуда не деться от хранения
3) вы лично можете у себя на винчестере подписи не хранить - всем остальным в мире на это плевать с высокой колокольни
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
и помещается в выход типа OP_RETURN транзакции coinbase.
Спасибо, этого не знал. Видел эти op_return в первой транзакции, теперь понятно, что там. Хотя их там часто по три штуки вместо одного.
legendary
Activity: 2317
Merit: 2318
В сегвит подпись не входит в хэш транзакции
Смотря в какой хеш. У нас теперь для транзакций два ID: txid и wtxid. Для wtxid транзакция хешируется вместе с witness.

Сами по себе ID транзакций в блоке не хранятся, вместо этого хранится корень дерева Меркла, который вычисляется из ID всех транзакций. И теперь у нас два таких корня. Первый - hashMerkleRoot вычисляется из txid всех транзакций и хранится в заголовке блока. Второй - witness root hash вычисляется из wtxid всех транзакций и помещается в выход типа OP_RETURN транзакции coinbase. Получается, что txid транзакции coinbase зависит от witness root hash. hashMerkleRoot, в свою очередь, зависит от txid coinbase, а хеш блока, опять же, зависит от hashMerkleRoot.

Итого получаем: хеш блока зависит от witness каждой транзакции по следующей схеме:
witness -> wtxid -> witness root hash -> coinbase_txid -> hashMerkleRoot -> block_hash
legendary
Activity: 1848
Merit: 2033
Crypto Swap Exchange
Подпись включена в хэш транзакции. Не будет подписи - никак не проверить правильность хэша транзакции. Не проверите хэш транзакции - не сможете проверить хэш блока
В сегвит подпись не входит в хэш транзакции, а таких транзакций уже процентов 80, если не ошибаюсь.
copper member
Activity: 1554
Merit: 489
Stop the war!
Является ли критичным обязательное хранение подписей в БЧ?
По идее если сеть так или иначе пришла к консенсусу по данным, то зачем хранить и хешировать подписи, если они не несут вроде никакой ценности уже?
Подписи хранить конечно не обязательно.
Просто без подписи битки считаются ничейными, а значит их может забрать любой. В реальности заберет тот, чья транзакция первой попадет в блок - это или майнер или тот, кто назначит самую большую комиссию.

почему ничейными? речь о том что транзакции остаются с подписью и блоки тоже, но когда блок А ссылается на блок Б то он может ссылаться(хешировать) только на фактические данные
Подпись включена в хэш транзакции. Не будет подписи - никак не проверить правильность хэша транзакции. Не проверите хэш транзакции - не сможете проверить хэш блока.
Клиентам, которые в сети, в принципе пофиг на эти проверки. Они получили свою копию БЧ и могут спать спокойно. А если клиент новый? Ему надо каждый блок качать друг за другом и проверять все хэши на валидность.
Если удастся подписи надежно хранить в другом месте, то в это другое место можно и все остальное запихнуть тогда.
newbie
Activity: 29
Merit: 2
Является ли критичным обязательное хранение подписей в БЧ?
По идее если сеть так или иначе пришла к консенсусу по данным, то зачем хранить и хешировать подписи, если они не несут вроде никакой ценности уже?
Подписи хранить конечно не обязательно.
Просто без подписи битки считаются ничейными, а значит их может забрать любой. В реальности заберет тот, чья транзакция первой попадет в блок - это или майнер или тот, кто назначит самую большую комиссию.

почему ничейными? речь о том что транзакции остаются с подписью и блоки тоже, но когда блок А ссылается на блок Б то он может ссылаться(хешировать) только на фактические данные а не всё подряд. Остальные получая блок Б делают тоже самое, тем самым манейр блока А не может туда вписапь шопопало, иначе он просто выпадет из консенсуса
copper member
Activity: 1554
Merit: 489
Stop the war!
Является ли критичным обязательное хранение подписей в БЧ?
По идее если сеть так или иначе пришла к консенсусу по данным, то зачем хранить и хешировать подписи, если они не несут вроде никакой ценности уже?
Подписи хранить конечно не обязательно.
Просто без подписи битки считаются ничейными, а значит их может забрать любой. В реальности заберет тот, чья транзакция первой попадет в блок - это или майнер или тот, кто назначит самую большую комиссию.
newbie
Activity: 29
Merit: 2
Является ли критичным обязательное хранение подписей в БЧ?
По идее если сеть так или иначе пришла к консенсусу по данным, то зачем хранить и хешировать подписи, если они не несут вроде никакой ценности уже?
Jump to: