Найти в Дзене

Эти платежи могли одновременно попасть на обработку в разные узлы и быть записаны в разные блоки.

Эти платежи могли одновременно попасть на обработку в разные узлы и быть записаны в разные блоки. Но, как мы знаем, записанный в блокчейн блок исправлять уже нельзя. В общем, ситуация, при которой все узлы сети Биткоина могут одновременно записывать блоки в блокчейн, привела бы к хаосу. Следовательно, необходимо делегировать право записи в блокчейн сформированного блока какому-то одному узлу. Но какой именно узел будет это делать? Ведь сеть Биткоина одноранговая и все узлы имеют равные права. Как достичь консенсуса между равными узлами? Автор Биткоина, некий Сатоши Накамото, предложил в протоколе использовать для определения такого узла известный ранее алгоритм, который получил название Proof of Work (PoW) — доказательство сделанной работы. Записать новый блок в блокчейн могут только те узлы, которые раньше других выполнят вычислительную работу по решению некоторой криптографической задачи большой сложности. При этом, все другие узлы могут быстро проверить правильность решения этой зад

Эти платежи могли одновременно попасть на обработку в разные узлы и быть записаны в разные блоки. Но, как мы знаем, записанный в блокчейн блок исправлять уже нельзя. В общем, ситуация, при которой все узлы сети Биткоина могут одновременно записывать блоки в блокчейн, привела бы к хаосу. Следовательно, необходимо делегировать право записи в блокчейн сформированного блока какому-то одному узлу. Но какой именно узел будет это делать? Ведь сеть Биткоина одноранговая и все узлы имеют равные права. Как достичь консенсуса между равными узлами? Автор Биткоина, некий Сатоши Накамото, предложил в протоколе использовать для определения такого узла известный ранее алгоритм, который получил название Proof of Work (PoW) — доказательство сделанной работы. Записать новый блок в блокчейн могут только те узлы, которые раньше других выполнят вычислительную работу по решению некоторой криптографической задачи большой сложности. При этом, все другие узлы могут быстро проверить правильность решения этой задачи, а также подтвердить, что все транзакции в сформированном блоке валидны. Такой криптографической задачей в протоколе Биткоина является задача по подбору параметра, называемого nonce, который, будучи добавлен к заголовку сформированного блока, изменял бы его (блока) хэш-код так, чтобы он начинался с заданного количества нулевых битов (bits), что равносильно получению хэша, менее или равного заданному большому числу (Diffculty Target или попросту Target). 85 Другими словами, надо добавить такую короткую строку данных (nonce) в сформированный блок, чтобы получившийся хэш-код блока начинался с определенного количества нулей (точнее — нулевых битов). Такую задачу можно решить только методом подбора, т.е. перебором большого количества разных параметров (nonce). Что очень трудоемко и требует больших вычислительных мощностей. С другой стороны, проверка правильности решения этой криптографической задачи очень проста — надо при помощи хэш-функции SHA-256 вычислить хэш-код сформированного блока, в заголовок которого добавлен найденный параметр nonce. Поясню на простом примере, как это происходит. Для этого возьмем уже известный нам пример с четверостишьем А.С.Пушкина: (нет заголовка) Мой дядя самых честных правил c55c1d6a76b4d5e2f67b5167fd6f8ded02bf94b4a552… Когда не в шутку занемог, fe11dbc29864cd135eb2a7ab20f7c6012f606615d3cc… Он уважать себя заставил b5fa6355fe7c54bc8a25c3711fd09c82bcb682b4a880… И лучше выдумать не мог. Как видим, в нашем примере все хэши в заголовках всех четырех блоков начинаются не с нулей. Добавим в заголовок блока параметр nonce и поставим задачу подобрать его таким, чтобы хэш-код предыдущего блока начинался с четырех нулей (подчеркнуто). Получится: 86 (нет хэша) 23106 Мой дядя самых честных правил 00007cee3bff26415365c1453fe6758ad888edad3877… 27980 Когда не в шутку занемог, 000083c4f4acb2239e607921f653e9320e050f71b955… 17007 Он уважать себя заставил 50405 0000b0f1e6d8b09e8bf005c7023a3696343fcff267cc… И лучше выдумать не мог.