Многозначная ошибка транзакции возврата в разговоре Lightning Network - Биткойнер
Купить гитару в Москве
2 голосов
/

Я смотрел выступление Тадже Дрии на конференции SF Bitcoin Devs, посвященной гибкости транзакций, которая легла в основу Lightning Network. enter image description here

В 17'45 "я видел этот пример. До SegWit и даже до рассмотрения вопроса о податливости, как можно даже подписать возврат txn, не зная TX-подписи фонда? Подписи финансирования от обеих сторон требуются для создания txid, на который ссылается входное значение TX-возврата. Однако, если эта информация известна, одна из сторон может отправить финансирование txn в сеть до возвратаtxn когда-либо подписывается, что вынуждает средства другой стороны заключать контракт на несколько подписей. Я что-то упустил?

(я думаю, что SIGHASH_NOINPUT был введен, чтобы обойти это точное ограничение)

1 Ответ

1 голос
/

Да, вы правы. Джозеф Пун и Тадже Дрижа в своем техническом документе Lightning Network предложили флаг SIGHASH_NOINPUT, чтобы предотвратить ошибку гибкости транзакции, препятствующую созданию транзакции обязательства перед транзакцией финансирования. Однако с развертыванием SegWit в 2017 году NOINPUT больше не требовался, поскольку подписи не являются частью конструкции txid в транзакции SegWit. Поскольку подписи не составляли часть вычисления txid, это позволило решить проблему гибкости подписи ECDSA, которую NOINPUT пытался решить. Таким образом, развертывание SegWit позволило нам создать транзакцию обязательства еще до подписания транзакции финансирования.

Спецификации Lightning Network претерпели существенные изменения с тех пор, как этот документ был опубликован еще в начале 2016 года. Ниже я постарался выделить, какстороны сообщают о подписании сделок как есть сегодня и предложениях о будущем при открытии канала друг с другом.

В текущих спецификациях ( BOLT 1.0 ) разрешена только одна сторонавнести биткойны на канал. Это упрощает процесс обмена подписями и создания транзакции обязательства перед транзакцией финансирования. Допустим, Алиса и Боб хотят открыть канал. Алиса будет транслировать транзакцию финансирования только тогда, когда она получит подпись Боба для транзакции обязательства, которую она держит. Поскольку Алиса здесь является единственным спонсором, у нее есть все боеприпасы для создания транзакции финансирования после того, как Боб обменяет свой ключ паба финансирования. Она создает и подписывает транзакцию, вычисляет txid, а затем передает ее Бобу вместе со своей подписью транзакции обязательства, которую держит Боб.

В настоящее время существует предложение (БОЛТ 1.1)за разрешение обеим сторонам вносить средства в канал. Обе стороны помогают друг другу строить транзакцию финансирования, делясь входными и выходными данными транзакции финансирования друг с другом, которые они планируют использовать для финансирования канала. Важно отметить, что они обмениваются всей информацией, кроме подписей для этих входных данных. После того как они разделили все входные и выходные данные, стороны имеют достаточно информации для расчета финансирования txid. Это связано с тем, что подписи транзакций SegWit не учитываются при расчете txid (как упоминалось ранее). Это позволяет нам построить первую транзакцию обязательства еще до ее создания.

Примечание: В настоящее время, как и в случае реализации Lightning Network, флаг NOINPUT не требуется. Но для реализации платежной конструкции Eltoo есть предложение ввести SIGHASH_NOINPUT. Короче говоря, Eltoo позволяет нам избавиться от штрафных транзакций и снизить накладные расходы на поддержание состояний каналов. Если вы заинтересованы, вы можете прочитать обсуждение этого предложения в списке рассылки Lightning.

Добро пожаловать на сайт Биткойнер, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...