Блокчейн
Блокчейн (англ. blockchain, от «block» и «chain») — непрерывная последовательность блоков, упорядоченная по заданным правилам, в которой каждый элемент содержит определённые сведения[1]. Связь между блоками достигается не просто через их последовательную нумерацию, но и благодаря наличию в каждом блоке собственной хеш-суммы, а также хеш-суммы блока, предшествующего ему. Любое изменение в содержимом блока влечёт за собой изменение его хеш-суммы. Чтобы цепочка сохранила правильную структуру, такую новую хеш-сумму необходимо внести в следующий блок, что, в свою очередь, потребует изменения и его хеш-суммы. При этом ранние блоки цепочки остаются неизменными. Если корректируемый блок — последний, внесение изменений обычно не вызывает больших затруднений. Однако, если за этим блоком уже добавлены последующие элементы, модификация превращается в сложный процесс. Всё усложняется тем, что копии блокчейна чаще всего хранятся на множестве независимых компьютеров[2].
Впервые термин появился как название полностью реплицированной распределённой базы данных, реализованной в биткойне из-за чего блокчейн часто отождествляют с реестром транзакций в различных криптовалютах[3]. Однако технология цепочек блоков может быть распространена на любые взаимосвязанные информационные блоки. Появившаяся в октябре 2008 года система Биткойн стала первым применением технологии блокчейн. В настоящее время блокчейн-технологии находят применение в таких областях, как финансовые операции, идентификация пользователей или создание технологий кибербезопасности, а также актуальны для банковских учреждений и государственных организаций[4].
История появления блокчейна
Термин «блокчейн» изначально использовался для обозначения распределённой базы данных, полностью реплицированной и внедрённой в рамках системы «Биткойн», что привело к его частому отождествлению с реестрами транзакций, применяемыми в криптовалютных сетях. В то же время, концепция блоков, связанных в цепочку, может быть адаптирована для хранения любых типов взаимосвязанных данных. Первое практическое внедрение технологии блокчейн состоялось именно в октябре 2008 года, когда была представлена система «Биткойн». На сегодняшний день технологии блокчейн активно используются в таких сферах, как проведение финансовых операций, идентификация пользователей, реализация механизмов кибербезопасности, а также находят применение в банковском секторе и в деятельности государственных структур[5].
Структура блокчейна
Блок транзакции
Блок транзакций представляет собой специальную структуру для записи группы операций в системе Биткойн и её аналогах. Транзакция становится завершённой и достоверной, когда её формат и подписи проходят проверку, а сама операция объединяется с другими в единый набор и помещается в блок. Наличие в каждом блоке информации о предыдущем гарантирует возможность проверки его содержимого. Все блоки формируют единый непрерывный реестр, фиксирующий все когда-либо проведённые операции, а первый в цепи, так называемый генезис-блок (англ. genesis block), рассматривается как особый случай ввиду отсутствия у него родителя.
Каждый блок состоит из заголовка и списка транзакций. В заголовке содержатся хеш текущего блока, хеш предыдущего, хеши всех операций и служебные параметры. В системе Биткойн в качестве первой транзакции всегда указывается комиссия, выступающая наградой майнеру за создание блока. Остальные операции отбираются из пула новых транзакций по критерию, задаваемому майнером: это может быть как временная последовательность, так и приоритет комиссии или участие определённых адресов. Для подведения итоговой хеш-суммы транзакций применяется древовидная схема, аналогичная той, что используется в протоколе BitTorrent для файла. Каждая операция (кроме комиссионной) включает ссылку на предыдущую транзакцию, давшую средства для текущего расхода, а в параметре input комиссионной «coinbase»-записи может содержаться произвольная информация.
Любой участник может в любой момент предложить новый блок, однако простое добавление без условий открыло бы возможность изменения уже существующих звеньев цепочки и поставило бы под сомнение единство реестра. Кроме того, за создание блока система эмитирует новые биткойны, выпуск которых должен регулироваться по времени. Для обеспечения затратности процесса применяется доказательство выполнения работы: числовое значение SHA-256-хеша блока должно быть меньше заранее установленного целевого числа, величина которого корректируется сетью. Если хеш не удовлетворяет условию, майнер изменяет параметр nonce и повторно вычисляет хеш. Поскольку обратного алгоритма для подбора результата не существует, найти подходящий параметр можно лишь методом перебора. Когда блок проходит проверку у остальных узлов и не содержит ошибок, его включают в цепочку, а последующий блок обязан ссылаться на его хеш.
Процесс подбора nonce требует множества итераций, и на это уходит значительное время. Целевое число пересматривается каждые 2016 блоков так, чтобы в среднем генерация нового блока занимала около десяти минут. Если сеть справляется быстрее, сложность слегка увеличивается — целевое число уменьшается, подбор становится сложнее; при замедлении происходит обратное. Такое регулирование не влияет на безопасность, а лишь поддерживает стабильный темп выпуска блоков независимо от общей вычислительной мощности сети. Высокая энергозатратность механизма доказательства выполнения работы приводит к концентрации майнинга у крупных операторов с серьёзными мощностями. В ряде альтернативных криптовалют внедрены другие алгоритмы — доказательство доли владения, доказательство активности и прочие — которые сохраняют неизменность цепочки без таких значительных вычислительных затрат.
Цепочка блоков
Блоки создаются одновременно множеством майнеров. Те, которые соответствуют заданным критериям, передаются в сеть и включаются во все копии распределённой базы. Время от времени происходит ситуация, при которой разные новые блоки в разных точках сети ссылаются на один и тот же предыдущий блок. В результате может возникнуть разветвление цепочки. Если ограничить распространение данных о новых блоках — по случайности или намеренно (например, внутри локальной сети) — это приведёт к параллельному развитию различных ветвей. В новых блоках могут быть одинаковые транзакции, а могут быть разные, попавшие только в один из них.
Когда передача данных восстанавливается, майнеры определяют, какая цепочка считается основной. Основным критерием является длина цепочки и сложность хеша. Если эти параметры одинаковы, выбирается та цепочка, у которой последний блок появился раньше. Транзакции, которые вошли только в отклонённую ветку (включая выплаты вознаграждений), теряют статус подтверждённых. Транзакции по передаче биткойнов вновь ставятся в очередь и могут попасть в один из следующих блоков. А выплаты за блоки, оказавшиеся вне основной ветви, не повторяются, то есть такие биткойны считаются потерянными. Это и есть блокчейн.
Публичная база содержит в незашифрованном виде данные о транзакциях, подписанных посредством асимметричного шифрования. Для предотвращения повторной траты одних и тех же средств используются метки времени, реализованные через блоки, каждый из которых содержит хеш предыдущего и номер. Новый блок подтверждает свои транзакции, а также косвенно подтверждает все предыдущие. Изменение данных в одном из уже включённых блоков крайне затруднительно, поскольку придётся менять все последующие. Благодаря этому атаки на систему с целью повторной траты практически невозможны. Преднамеренное изменение информации в копиях базы, даже если их много, не считается достоверным, если нарушает правила. Допускается корректировка, если она согласована во всех копиях, например удаление последних блоков из-за ошибок. Для пояснения работы системы Сатоси Накамото ввёл термин «цифровая монета», как цепочку цифровых подписей. В отличие от обычных монет, каждая такая имеет индивидуальный номинал. К одному биткойн-адресу может быть привязано множество «монет», которые можно разделять и объединять, сохраняя общий номинал за вычетом комиссии. До версии 0.8.0 основной клиент использовал для хранения базы Berkeley DB, с версии 0.8.0 — LevelDB.
Подтверждение транзакции
Пока транзакция не включена в блок, баланс адреса остаётся неизменным. В этот период технически возможно создать несколько разных транзакций, расходующих одни и те же биткойны на разные адреса. Как только одна из таких транзакций попадёт в блок, остальные с теми же монетами будут автоматически отвергнуты. К примеру, если в цепь войдёт более поздняя по времени операция, более ранняя станет ошибочной. При ветвлении сети две конфликтующие транзакции могут оказаться в блоках параллельных ветвей: обе будут считаться действительными до тех пор, пока одна из ветвей не отомрёт — тогда одна из транзакций окончательно признаётся недействительной без учёта временной метки.
Включение транзакции в блок служит подтверждением её корректности, независимо от наличия других попыток потратить те же монеты. Каждый последующий блок добавляет к ней ещё одно «подтверждение»: если цепочка включает три блока, операция из первого блока имеет три подтверждения, из второго — два, из третьего — одно. Чем больше подтверждений, тем ниже вероятность отмены транзакции.
Чтобы снизить риск подобных коллизий, в сети действуют ограничения на распоряжение только что полученными биткойнами. До мая 2015 года максимальная глубина «отвергнутых» ветвей не превышала пяти блоков. Требуемое число подтверждений для разблокировки поступивших средств задаётся клиентским приложением или получающей стороной. В «Bitcoin-qt» для отправки достаточно одного подтверждения, но большинство площадок настраивают порог в шесть подтверждений, что обычно занимает около часа. Разные сервисы вправе устанавливать собственные требования.
Вознаграждение за найденный блок нельзя тратить сразу: протокол допускает использование только после ста подтверждений, однако стандартный клиент считает комиссию доступной после ста двадцати подтверждений, то есть примерно через двадцать часов после начисления.
Двойное расходование
Механизм доказательства выполнения работы обладает характерной уязвимостью: при контроле более чем половины общей вычислительной мощности сети появляется гипотетическая возможность осуществить двойную передачу тех же биткойнов различным адресатам, вне зависимости от установленного порога подтверждений. При этом одна транзакция будет публичной и подтверждённой в рамках основной цепи, тогда как другая останется скрытой, её подтверждение будет происходить за счёт блоков альтернативной параллельной ветви. Со временем, когда сеть распознает вторую транзакцию, она получит подтверждения, а первая — утратит статус подтверждённой и станет недействительной. Хотя это не ведёт к созданию новых биткойнов, фактический владелец изменится, и первоначальный получатель понесёт потери без возврата средств.
Публичность блокчейна допускает возможность внесения изменений в любой блок, однако такая коррекция потребует пересчёта хешей не только самого изменённого блока, но и всех следующих за ним. Это означает необходимость задействовать вычислительную мощность, сопоставимую с той, что была изначально использована для генерации этих блоков, делая подобные манипуляции практически невыполнимыми.
На начало декабря 2013 года общая мощность сети превысила отметку в 6000 THash/s. С начала 2014 года майнинговый пул стабильно контролировал более 40 % совокупной мощности, а в июне того же года временно превысил порог в 50 %.
На практике случаи двойного расходования биткойнов зафиксированы не были. По состоянию на май 2015 года параллельные цепи блоков ни разу не превышали пяти блоков.
Для иных алгоритмов определения права на создание нового блока, не зависящих от вычислительной мощности, также существуют специфические уязвимости, потенциально способные привести к двойной трате.
Сложность
Параметр «сложность» определяет требования к хешам блоков и представляет собой регулируемый показатель, необходимый для поддержания стабильного темпа генерации новых блоков. В силу изменчивости совокупной вычислительной мощности сети, этот параметр пересчитывается пользователями блокчейна каждые 2016 блоков, чтобы обеспечить среднюю скорость их создания — один блок примерно каждые 10 минут, или 2016 блоков за 20160 минут (что эквивалентно 14 дням).
На практике увеличение общей вычислительной мощности сети сокращает интервал между созданием блоков, тогда как снижение — напротив, удлиняет его. Перерасчёт сложности осуществляется с ориентацией на временные метки, присутствующие в заголовках блоков, которые фиксируют момент их создания. Эти метки оформляются в Unix-формате и опираются на системные часы автора блока — либо, в случае работы в составе пула, на часы сервера, задействованного в создании соответствующего блока.
Потенциал применения
Блокчейн-технология представляет собой распределённую децентрализованную систему записи данных, обладающую высокой степенью защищённости и неизменяемости. Её архитектура, основанная на последовательном связывании блоков с помощью криптографических хешей, обеспечивает доверенную среду для хранения и передачи информации без необходимости централизованного контроля. Потенциал применения данной технологии охватывает широкий спектр отраслей, включая финансовый сектор, государственное управление, здравоохранение, образование, логистику, энергетику и сферу авторского права.
В финансовых системах блокчейн используется для реализации криптовалют, ускорения и удешевления транзакций, сокращения посреднических звеньев и повышения прозрачности операций. В области управления цифровыми активами технология обеспечивает точную идентификацию и отслеживание права собственности. Для государственного сектора блокчейн способен улучшить процессы идентификации граждан, повысить надёжность голосования, и обеспечить прозрачность бюджетных расходов. В медицине платформа применяется для защиты медицинских записей, контроля цепочек поставок лекарственных препаратов и согласования стандартов хранения персональных данных. В логистике — для обеспечения трассируемости товаров, недопущения фальсификаций и оптимизации складских и транспортных операций. В энергетике блокчейн способствует реализации децентрализованных моделей распределения энергии, поддерживает учёт производства и потребления, а также стимулирует развитие «умных» сетей. В сфере авторского права — помогает фиксировать факты создания контента, защищать интеллектуальную собственность и автоматизировать выплаты с помощью смарт-контрактов.
Технология также может быть применена в области образования для верификации дипломов, аттестатов и учебных достижений, а в социальной и гуманитарной сферах — для управления благотворительными фондами, отслеживания распределения ресурсов и повышения ответственности участников. Учитывая универсальность, масштабируемость и устойчивость блокчейн-инфраструктур, перспективы её применения продолжают расширяться в направлении автоматизации, цифровизации и демократизации процессов, затрагивающих как отдельные организации, так и межгосударственные взаимодействия.
Примечания
- ↑ Блокчейн в логистике. Крупные игроки и новаторы. Cargotime. Дата обращения: 15 февраля 2025.
- ↑ Marco Iansiti and Karim R. Lakhani. The Truth About Blockchain (англ.) // Harvard Business Review : magazine. — 2017. — No. January—February 2017 issue. — P. 118—127.
- ↑ Номинации | FINAWARD. finaward.ru. Дата обращения: 30 сентября 2019. Архивировано 30 сентября 2019 года.
- ↑ Митио Каку. Квантовое превосходство. Революция в вычислениях, которая изменит всё = Michio Kaku. Quantum Supremacy: How the Quantum Computer Revolution Will Change Everything. — М.: Альпина нон-фикшн, 2024. — С. 21. — 412 с. — ISBN 978-5-00139-728-1.
- ↑ Blockchain Explained (неопр.).