Здравствуйте, уважаемые форумчане! В прошлой теме я рассказал про транзакции в системе биткоин. А транзакции объединяются в блоки. Так вот, в этой теме я расскажу о блоках транзакций в системе биткоин. Отдельные транзакции объединяются друг с другом в блоки. Вся информация о транзакциях в блоках открыта и незашифрована, поэтому её можно легко проверить и перепроверить. В любом блоке должен быть порядковый номер самого блока и хеш предыдущего блока. Из всех блоков можно построить одну общую цепь. В этой цепи будет информация об абсолютно всех операциях с биткоинами, которые когда-либо были совершены. Эту информацию можно прочитать на специальных сайтах, которые называются браузеры цепочек блоков. Вот как схематически выглядит цепочка блоков: Длина цепочки вычисляется от начального до текущего основного. Зелёный - начальный блок, чёрные - основные, фиолетовые - побочные. Самая первая транзакция блока создаётся автоматически. По ней передаётся награда за формирование блока. Всё последующее наполнение блока берётся из очереди транзакций, которые не попали в блоки, созданные ранее. Тот, кто создал блок, может выбрать транзакции по своему желанию. Например, создатель блока может взять только транзакции, в которых нет комиссии или наоборот – только те, в которых есть комиссия. Не каждый созданный блок принимается участниками. Чтобы блок приняли другие пользователи, значение хеша заголовка должно быть не выше предусмотренного значения. В служебной части блока есть специальное место, отведённое для произвольных значений. В том случае, если хеш заголовка не подходит по каким-то причинам, можно заменить произвольные значения на новые либо тоже произвольные, либо случайные значения. Хеш при этом рассчитывается повторно. Результат хеширования невозможно предсказать, а потому нет специального алгоритма, который заменял бы произвольную область, чтобы достичь нужного результата. Обычно для этого нужно множество перерасчётов. Один раз в две недели параметр «сложность» автоматом устанавливается так, чтобы поддерживалась постоянная средняя скорость формирования блоков (обычно не больше одного блока за 10 минут). В случае, если блоки будут создаваться быстрее, после пересчёта достижение нужного результата становится намного труднее. А если блоки создаются медленнее, то наоборот – легче. Когда находится подходящий вариант хеша, узел начинает рассылать полученный блок всем другим подключённым узлам для проверки. Если ошибок не будет, то все узлы сети, которые получили блок, запишут его в свой образец базы.