
Кошелёк показывает у Bitcoin-платежа «RBF выключен». Получатель воспринимает это как обещание, что до подтверждения транзакцию уже нельзя заменить. Такой вывод по одной пометке делать нельзя. Сначала нужно понять, какой именно признак показан: явный сигнал BIP125, возможность действия в конкретном кошельке или результат проверки узла.
У поля nSequence несколько разных ролей
Значение nSequence хранится у каждого входа, а не одно на всю транзакцию. Поле исторически используется для явного opt-in-сигнала замены, участвует в условиях относительной блокировки и влияет на применение отдельного поля nLockTime. Эти правила связаны с одними числами, но отвечают на разные вопросы.
- Явный сигнал BIP125
- Достаточно одного входа с nSequence меньше 0xfffffffe. Это признак в переданных полях, а не итог проверки всех условий замены.
- Относительная блокировка BIP68
- Для рассматриваемых положительных версий от 2 применяется, если у входа не установлен отключающий бит 31. Значение извлекается по отдельной маске.
- Влияние на nLockTime
- Если у всех входов стоит константа FINAL, 0xffffffff, nLockTime обходится. Один другой вход снимает именно этот обход; это ещё не проверка выполнения ограничения.
Четыре значения, которые легко перепутать
| nSequence | Явный BIP125 | Относительная блокировка BIP68 | Равен константе FINAL |
|---|---|---|---|
| 0xffffffff | Нет | Отключена битом 31 | Да |
| 0xfffffffe | Нет | Отключена битом 31 | Нет |
| 0xfffffffd | Да | Отключена битом 31 | Нет |
| 0x00400002 | Да | Две единицы по 512 секунд: 1 024 секунды | Нет |
Слово FINAL здесь — имя константы. Оно не означает подтверждение в блоке, необратимость платежа или окончательное решение сервиса. Если у одного входа стоит 0xffffffff, а у другого 0xfffffffe, обход nLockTime всеми входами не действует. Для явного BIP125 второй строки всё ещё недостаточно.
Почему «сигнала нет» не равно «замена запрещена»
BIP125 описывает opt-in-политику, включая явный и наследуемый сигналы. Но правила конкретной реализации менялись. В проверенной документации Bitcoin Core 31 требование сигнала для политики замены отсутствует; там перечислены другие условия, включая комиссии и улучшение диаграммы ставок. Поэтому старый индикатор opt-in нельзя превращать в универсальную гарантию поведения сети.
Это также не означает, что любая предложенная замена будет принята. Узел проверяет остальные условия, а кошелёк может иметь собственные ограничения интерфейса и построения транзакции. Инструмент статьи не моделирует замену, не выбирает комиссию и не исследует неподтверждённых предков. Наследуемый сигнал BIP125 тоже не определяется по списку nSequence одной транзакции.
Как расшифровывается относительное значение
В применимой модели BIP68 младшие шестнадцать бит дают число единиц. Бит 22 выбирает единицу: если он установлен, это интервалы по 512 секунд; иначе — блоки. Поэтому 0x00400002 задаёт 2 × 512 = 1 024 секунды, а обычное число 2 при тех же условиях означает два блока.
Это не таймер от момента отправки в кошельке. Для проверки относительной блокировки нужны сведения о расходуемых выходах и соответствующая история блоков, включая median-time-past для временного варианта. Форма не получает эти данные, поэтому не выводит дату разблокировки. При нулевом младшем значении правило может применяться с нулевой длительностью.
Версия и отключающий флаг меняют смысл
Переключите в форме версию с 2 на 1: расшифровка BIP68 перестанет применяться, хотя числовые биты останутся прежними. Поставьте у входа отключающий бит 31: результат тоже не должен интерпретировать младшее число как относительную задержку. Остальные биты показаны справочно и не включаются в шестнадцатибитную величину BIP68.
Отдельно проверьте обход nLockTime
Оставьте nLockTime равным учебным 900000 и укажите только I1;0xffffffff. Форма покажет обход всеми входами. Замените значение на 0xfffffffe: обход исчезнет, явного BIP125 всё ещё нет, BIP68 отключён. Это три раздельных результата. При nLockTime = 0 абсолютное ограничение в этой проверке не запрашивается.
Что вводить и как использовать результат
Нужны положительная версия транзакции, nLockTime и список «метка входа;sequence». Метки I1–I4 вымышлены, не TXID. Допустимы десятичные uint32 и шестнадцатеричные значения с префиксом 0x. Предел — сто обычных входов; модель исключает coinbase. Версии ограничены диапазоном от 1 до 2 147 483 647, без проверки допуска конкретной версии политикой узла.
Не вводите seed-фразы, приватные ключи или подписи. Форма ничего не строит и не отправляет. Она показывает явный сигнал, поля относительной блокировки и обход nLockTime, но не исполняет скрипты, не проверяет возраст выходов, текущий блок, mempool, подписи или возможность замены.
Сохранённый результат пригодится для точного вопроса поддержке кошелька: что означает её пометка и почему доступно или недоступно конкретное действие. Ожидание подтверждений и условия обмена проверяются отдельно. Для общего порядка работы с заявкой используйте описание обмена KOT.CASH, а не вывод о нескольких числовых полях.
Разобрать nSequence обычных входов
Учебный разбор обычной non-coinbase транзакции: FINAL, явный BIP125 и BIP68. nLockTime не проверяется на выполнение, скрипты и история блоков не читаются. Нет наследуемого сигнала, комиссий, mempool, подтверждений, подписания и отправки. Отсутствие сигнала не запрещает замену политикой узла. Расчёт выполняется на вашем устройстве, введённые данные никуда не отправляются.