Зачем хранить одноразовый номер учетной записи в цепочке вместо использования временной метки для предотвращения повторных атак?

Зачем хранить одноразовый номер учетной записи в цепочке вместо использования метки времени для предотвращения повторных атак или любого другого случайного бита информации, который изменит хэш и дифференцирует транзакцию?

Насколько я понял, одноразовый номер учетной записи — это бит информации, добавляемый к транзакции для противодействия повторным атакам путем создания уникального хэша транзакции, используемого для идентификации учетной записи.

Мой вопрос: зачем нужна постоянная запись, которая занимает место в цепочке сумм транзакций, совершенных каждой учетной записью? Нельзя ли добиться того же эффекта, добавив в транзакцию любые другие случайные или уникальные данные, например временную метку в момент, когда транзакция генерируется клиентом кошелька? Есть ли какие-либо другие преимущества записи одноразовых номеров учетных записей, которые я не вижу?

Пожалуйста, уточните немного — например, добавьте ссылку на документацию, объясняющую использование nonce, и, возможно, объясните, что, по вашему мнению, можно использовать вместо этого, и каковы преимущества предложенной вами альтернативы по сравнению с тем, что есть у Ethereum сейчас. Кроме того, проверьте этот вопрос - содержит ли он то, что вы хотите знать? эфириум.stackexchange.com/questions/27432/…
Спасибо, я отредактировал вопрос, чтобы попытаться быть более ясным. Предоставленная ссылка не совсем относится к этому конкретному вопросу, который у меня есть

Ответы (1)

Во-первых, у транзакций нет метки времени. Только блоки имеют временные метки.

Теперь вы можете спросить , почему мы просто не использовали временные метки вместо nonce; с технической точки зрения, это сработало бы одинаково хорошо. Думаю, это больше связано с выбором дизайна. Рассмотрим миллиарды транзакций, а затем каждая транзакция содержит несколько байтов для метки времени, одноразовый номер сравнительно меньше по размеру. И на самом деле, если вы посмотрите на это программно, одноразовый номер — это скорее понятие упорядочения (во многом похожее на отметку времени). Кроме того, вы также получаете количество транзакций.

По сути, вы получаете три преимущества при использовании непревзойденного пространства: простота, порядок и отслеживание количества транзакций. Наиболее важным является тот факт, что в силу децентрализованной природы сети Ethereum вам необходимо убедиться, что транзакция A не была потеряна, и, следовательно, EVM не будет обрабатывать транзакцию B, предполагая, что транзакция A должна была произойти раньше. B. Вы можете думать об этом как о том, что транзакции будут выполняться по порядку, несмотря на задержку в сети, которую испытывает каждая транзакция (очень похоже на TCP-пакеты, если аналогия помогает). Этого нельзя достичь с помощью простых временных меток.

Кроме того, вы должны знать, что временные метки в сети могут быть искусственно изменены узлами майнера.