В чем разница (и взаимосвязь) между (1) процессом, используемым для проверки транзакции, и (2) процессом, используемым для подтверждения блока? Кажется, что эти процессы довольно автономны, поскольку некоторые блоки подтверждаются нулевыми транзакциями. Но блок может быть подтвержден только в том случае, если все транзакции в нем были проверены, верно? Хотелось бы больше ясности в отношении сходств и различий между этими двумя процессами.
Я могу предоставить краткое изложение, которое поможет вам понять все, пока вы будете искать подробности в Google.
Это отдельные заботы.
Проверка связана с принятием решения о том, разрешена ли транзакция. Например, я могу отправить транзакцию, которая переведет весь ваш эфир на мой счет. Валидаторы заметят, что моя транзакция не подписана вашей подписью, поэтому она не разрешена протоколом, поэтому состояние не изменяется, и я теряю весь газ, который я отправил.
Другие причины признания сделки недействительной. У отправителя недостаточно средств, контракт решил, что ввод неприемлем, контракт решил, что запрос неприемлем.
Майнинг блока — отдельная тема.
Блок транзакций — это набор транзакций в определенном порядке . Порядок важен, потому что сети необходимо определить порядок обработки транзакций. Без консенсуса в отношении порядка событий невозможен консенсус в отношении результатов.
Задача здесь двоякая. Существует сетевая задержка, поэтому узлы не узнают об ожидающих транзакциях в точно таком же порядке. И, чтобы быть полностью децентрализованным, решение не может полагаться на чьи-либо часы, потому что ничьи часы не считаются лучше, чем чьи-либо еще.
Майнеры заказывают незавершенные транзакции, о которых они знают, и когда они «находят» блок, они транслируют решение в сеть. Это устраняет неоднозначность порядка событий, поэтому сеть может достичь консенсуса относительно порядка событий. PoW похож на лотерею. Победитель может «посчитать», что транзакции в блоке разворачивались в определенном порядке. Они также могут решать, какие транзакции (они могут не знать обо всех, или комиссия может быть слишком низкой). Пропущенные транзакции обычно обрабатываются в следующем блоке.
Подтверждение транзакции
После блока с моей (неудачной) транзакцией существует небольшая вероятность того, что другой майнер объявит блок с другим решением. Возможно, это будут те же транзакции, но в другом порядке, или, возможно, другое мнение (византийская отказоустойчивость) о достоверности. Это означает, что блок может быть опрокинут лучшей идеей. Тем не менее, новый блок появляется примерно каждые 15 секунд, так что по мере их накопления вероятность того, что старые блоки будут перевернуты, становится все меньше. Вот почему принято ждать нескольких подтверждений для распознавания крупных транзакций.
Все вместе сейчас:
Моя нелепая транзакция может быть (скажем...) третьей транзакцией в блоке, в результате которой я потерял газ. Сеть достигает консенсуса в процессе майнинга, что транзакция была третьей, обработанной сетью, и транзакция была недействительной, и из-за этого я потерял свой газ. После получения еще нескольких блоков мы можем быть уверены, что увидели последнее слово в сетевом консенсусе по поводу моего неудачного эксплойта.
Надеюсь, поможет.
легкие