Какую защиту от повторных атак обеспечивает Ropsten?

Насколько я понимаю, тестовая сеть Ropsten была отчасти необходима из-за несоблюдения некоторых мер защиты от воспроизведения в Мордене. Так что же изменилось для Ropsten?

Просто увеличивается ли одноразовый номер на меньшее число, чем было у Мордена?

Глядя на блок генезиса , похоже, что nonceзначение установлено на 0x42, это смещение одноразового номера? Таким образом, после того, как учетная запись основной сети имеет более 66 транзакций, ее транзакции тестовой сети можно воспроизвести в основной сети?

Это не звучит идеально, но если это ответ, пожалуйста, дайте мне знать!

Ответы (1)

Клиенты 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.