Насколько сложно изменить блок после того, как он был найден?

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

Ответы (3)

Как только майнер нашел блок, насколько легко ему добавить или удалить tx, включенный в этот самый блок?

Это невозможно. Решаемый блок зависит от каждого байта данных транзакции, ничего изменить нельзя. Важно, чтобы это было именно так. Что, если бы я мог транслировать решенный блок, но пропустить транзакцию, в которой я отправлял монеты кому-то другому, по сути возвращая свои расходы? Это сделало бы систему небезопасной.

Придется ли ему решать модифицированный блок с нуля или есть смысл возобновить процесс решения?

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

Подробнее о деревьях Меркла в биткойнах см. здесь: Что такое корень Меркла?


РЕДАКТИРОВАТЬ: я хотел добавить эту аналогию с майнингом, которую я считаю полезной.

Каждый хеш, который вычисляет майнер, имеет шанс решить блок. Майнинг в основном похож на съемку видео, в котором вы подбрасываете 256 монет, пытаясь получить длинную цепочку решек. Длина ряда решек определяется тем, с каким количеством других подбрасывателей монет вы соревнуетесь. Если выпадает достаточно длинная цепочка орлов, вы показываете доказательство (видео) и получаете вознаграждение. В противном случае вы просто попробуете еще раз. По сути, вы начинаете заново каждый раз, когда делаете новый хеш (то есть миллиарды раз), и изменение данных вашего блока не делает вас более или менее маловероятным для успешного подбрасывания монет.

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

«Это в основном похоже на то, чтобы начать все сначала». На самом деле, это неотличимо от начала заново. ;)

Из оригинальной статьи о биткойнах :

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

SHA256 — это криптографическая хеш-функция .
Среди прочих черт это

  • невозможно изменить ввод CHF без изменения хэш-вывода
  • между хэшами двух разных сообщений нет различимой закономерности

Поскольку хэш блока является результатом применения алгоритма SHA256 к данным блока, а данные транзакции представлены на входе через корень Меркла, невозможно изменить даже один бит блока или транзакции, не начав с нуля. не является преимуществом, работая с тесно связанными входными данными.