Имеют. Ведь если средства покинули адрес А, то с него вы уже второй раз их не отправите.
Не адрес, а utxo.
Короче самый простой способ себя обезопасить это поменять адрес хранения средств.
Не адрес, а utxo. Чтобы инвалидировать транзакцию, надо записать в блокчейн транзакцию, использующую её входы. В простонародье это называется "даблспенд", но можно как угодно называть. А адрес можно тот же самый оставить
Остаётся вопрос: а как отследить есть ли где-то запись моей (или чьей-либо древней не прошедшей транзакции)? Логика подсказывает что никак, ведь если какой-то хитрожопый майнер сохранил транзу "до лучших времён" то никто не заставит его этой информацией делиться.
Формально так и есть. Ну, можете опросить всех жителей Земли и проверить все компьютеры на планете -- не осталось ли у кого вашей транзакции? Потом еще все сейфы переройте -- может её на бумажку записали. Или в бутылку положили и в море бросили. Лет через сто её найдут и по приколу отправят в сеть. Если сеть будет существовать.
Если я не ошибаюсь у меня как-то была зависшая транза которая потом сама благополучно "отменилась" по прошествии пары суток.
Никаким образом на это нельзя полагаться. Транзакция остается валидной вечно (не рассматриваем даблспенд и изменение правил консенсуса)
Разумеется, в реальном мире различные программы поступают как им заблагорассудится:
-- другие клиенты имеют право "забыть" вашу транзакцию хоть через секунду после её появления
-- могут хранить её какое-то время (в клиенте есть опция)
-- могут ребродкастить её своим пирам пока она валидна и не включена в блок.
Никаких правил на этот счет нет и быть не может. Нет смысла пытаться каким-то образом это оформлять в правило, потому что невозможно контролировать его исполнение всеми участниками.
Кстати. Если уж проводить ликбез.
Люди спрашивали на stackexchange -- можно ли каким-то образом создать транзакцию, которая перестаёт быть валидной если не включена в блок до какого-то времени?
Ответ -- в существующем Биткойне такое невозможно.
Есть операции препятствующие попаданию в блок до определенного события ( OP_CSV, OP_CLTV ), но не наоборот.