Какое действие на самом деле приведет к недействительному блоку и что произойдет с действительными транзакциями в этом блоке

Я пытаюсь выяснить, как возник недопустимый блок и что происходит (технически) с действительными транзакциями в недопустимом блоке.

Насколько я понимаю, недействительные транзакции (например, трата больше ETH, чем баланс аккаунта) даже не попадут в блок. Так всегда ли это мошенничество или случайность (например, когда 2 майнера решают головоломку одновременно)?

Кроме того, когда блок оказывается недействительным, возвращаются ли включенные действительные транзакции в пул транзакций? Может кто-нибудь объяснить мне, как это работает? Кроме того, в случае двух майнеров, публикующих блок одновременно... включают ли они одни и те же транзакции, остаются ли они в пуле до тех пор, пока не произойдет ..x.. подтверждений?

Много вопросов, я просто немного не понимаю фактических причин «недействительного блока» и того, как система гарантирует, что все действительные транзакции по-прежнему будут включены в другой блок .

Благодарность!

Ответы (1)

Я пытаюсь понять, как мог появиться недопустимый блок

Майнер может создать недопустимый блок разными способами (например, поставив на него недопустимую временную метку), в том числе имея в блоке недопустимую транзакцию.

Но недопустимого блока в принципе не существует, потому что все остальные майнеры и узлы просто игнорируют этот блок.

Насколько я понимаю, недействительные транзакции (например, трата больше ETH, чем баланс аккаунта) даже не попадут в блок. Так это всегда мошенничество или случайность

Правильно, майнеры не будут включать недействительные транзакции в блок: они не получат от этого никакого вознаграждения. Недействительная транзакция, как правило, является мошенничеством или может быть создана с использованием ошибочного программного обеспечения. Как правило, действительная транзакция (которая еще не находится в блоке) всегда остается действительной: если Алиса выписывает чек для оплаты Бобу, чек всегда будет действительным: только Алиса может попытаться аннулировать чек, скажем, отправив все свои деньги Чарли. используя тот же контрольный номер.

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

У каждого майнера есть собственный пул транзакций, и каждый из них может решить, какие транзакции включить в блок. Поскольку недопустимый блок просто игнорируется, майнеры и узлы будут хранить все транзакции в недопустимом блоке в своем пуле транзакций (они даже не знают, что в недопустимом блоке были транзакции, чтобы удалить их из пула в первую очередь). .

в случае, если два майнера публикуют блок одновременно... включают в себя одни и те же транзакции, остаются ли они в пуле до тех пор, пока не произойдет ..x.. подтверждений?

Как правило, нет, оба майнера не включают одни и те же транзакции. Случайно оба могут включать одни и те же транзакции, но каждый майнер может решить, что включать, и порядок транзакций. У каждого майнера и узла может быть собственное правило о том, когда транзакции будут удаляться из пула, так как это не является частью протокола.

Я просто немного не понимаю фактических причин «недействительного блока» и того, как система гарантирует, что все действительные транзакции по-прежнему будут включены в другой блок.

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

Просто чтобы быть уверенным... когда вы говорите, что «у каждого майнера есть свой собственный пул транзакций», все транзакции распространяются на каждый из этих пулов, верно? Я имею в виду, что набор транзакций тот же, просто майнеру решать, какие из них, если таковые имеются, он будет включать в блок?
Да, как правило, каждый узел будет распространять свои действительные транзакции среди своих пиров, поэтому со временем транзакция должна быть в пуле каждого отдельного майнера.
Рад, что это помогло!