Разве cryptonote не защищен от transaction replay механизмом кольцевых подписей?
Я про кольцевые подписи ничего не знаю, но в общем случае защита от transaction replay делается так: в транзакции есть параметр
версия, и инициатор сплита меняет этот параметр и правила приёма транзакций: с момента сплита принимаем только транзакции с новой версией. А ноды старой цепочки, в свою очередь, не принимают транзакции с новой версией.
В сущности получается, transaction replay не связан с majority attack, поскольку сплит может произойти просто если часть сети поменяет программное обеспечение и будет считать только свои блоки валидными, строя свою цепь.. или я ошибаюсь?
Верно. В криптовалютах преднамеренные сплиты блокчейна не редкость. Когда разработчик решает поменять какие-либо параметры криптовалюты или ввести новый функционал, делается сплит блокчейна, называемый хардфорком, посредством выпуска новой версии ПО ноды. Если хардфорк делается по техническим причинам, то предполагается, что старую цепочку никто не будет майнить за ненадобностью, поэтому защита от transaction replay в таких случаях не делается.
В этой ситуации, можно вспомнить нежданчик ETC, когда, вопреки планам разработчика, старую цепочку продолжили майнить и таки нарисовались проблемы с transaction replay между цепочками ETH и ETC.
А бывает другая ситуация, когда хардфорк делается для создания новой криптовалюты, при этом обладатели ненулевого баланса в старой криптовалюте после хардфорка автоматически получают такой же баланс в новой криптовалюте. В этом случае, инициатор хардфорка, если он не долбоёб, предпринимает меры для отделения своих транзакций от чужих вышеописанным способом.