Насколько я понимаю, тестовая сеть Ropsten была отчасти необходима из-за несоблюдения некоторых мер защиты от воспроизведения в Мордене. Так что же изменилось для Ropsten?
Просто увеличивается ли одноразовый номер на меньшее число, чем было у Мордена?
Глядя на блок генезиса , похоже, что nonce
значение установлено на 0x42
, это смещение одноразового номера? Таким образом, после того, как учетная запись основной сети имеет более 66 транзакций, ее транзакции тестовой сети можно воспроизвести в основной сети?
Это не звучит идеально, но если это ответ, пожалуйста, дайте мне знать!
Клиенты Ropsten, такие как Geth и Parity, используют защиту от атак EIP 155 Simple replay для защиты от повторных транзакций Ropsten в основной сети.
Выдержка (у EIP 155 есть реальный пример):
v = CHAIN_ID * 2 + 35 или v = CHAIN_ID * 2 + 36, то при вычислении хэша транзакции для подписи или восстановления вместо хеширования только первых шести элементов (т. е. nonce, gasprice, startgas, to, значение, данные), девять элементов хэша с заменой v на CHAIN_ID, r = 0 и s = 0. Существующая в настоящее время схема подписи с использованием v = 27 и v = 28 остается в силе и продолжает работать по тем же правилам, что и сейчас. .
CHAIN_ID для Ropsten равен 3.
Транзакция Ropsten должна быть создана в соответствии с правилами EIP 155, чтобы получить защиту от повторного использования. Если кошелек реализует EIP 155 , он может выполнять неограниченное количество транзакций, защищенных от повторных атак. Если кошелек не реализует EIP 155, созданные им транзакции могут быть воспроизведены в других сетях (поскольку они все еще являются действительными транзакциями, и это то, что подразумевается под последним предложением в приведенном выше отрывке).
Вкратце, для реализации EIP 155 в Ropsten хэшируйте 9 элементов (вместо 6) и используйте 41 или 42 для v
.
Файл nonce
генезиса Ropsten от Geth не связан с защитой от повторного воспроизведения: см. Что означает каждый параметр genesis.json? Как отмечено здесь , у Parity есть отдельный файл генезиса для Ropsten, и Parity назвала бы его (одноразовый номер защиты от воспроизведения до EIP155) файлом accountStartNonce
.