Блокчейн. Цихилов. Блокчейн (Цихилов). Копирование, воспроизведение и иное использование электронной книги, ее частей
![]()
|
Подобная система формирования транзакций и ведения балансов называется UTXO (Unspent Transaction Output — «непотраченные транзакционные выходы»). Как было указано выше, для расчета баланса, связанного с конкретным адресом в системе, необходимо найти и проверить все связанные с ним «входы» и «выходы» с самого начала базы блоков. Плюс этого метода в том, что не нужно отдельно хранить состояние балансов и постоянно их актуализировать, тем самым получая экономию свободного места на носителях. Минус — это время, которое постоянно затрачивается на расчет баланса, особенно если база блоков достаточно выросла в своих размерах. Поэтому ряд проектов все же хранит специальные базы «актуального состояния», где, в частности, находятся и данные о балансах адресов, которые можно быстро оттуда получить. Теперь рассмотрим, какая еще дополнительная служебная информация может помещаться в транзакции. Во-первых, это идентификатор транзакции с уникальным номером, который не может повторяться. Его получают из хеша самой транзакции, поскольку, как мы знаем, у криптостойких хеш-функций вероятность получения коллизии (то есть одинакового хеша для разных прообразов) очень и очень мала. Во-вторых, в тело транзакции обычно помещают хеш предыдущей транзакции в данном блоке — по аналогии с тем, как это делается в заголовках самих блоков. Наличие этой информации в каждой транзакции преследует ту же самую цель — поддержание целостности хранения данных и ее защиту от несанкционированного изменения. Также при описании ссылок на «входы» указывают открытый ключ адреса и электронную подпись, которая доказывает, что у автора транзакции имеется закрытый ключ от этой пары. И последнее, что хотелось бы сказать о транзакциях в общем описании — это комиссия. Различные блокчейн-проекты взимают комиссию за транзакции, хотя бывают и такие, в которых все транзакции бесплатны. Комиссия существует для монетарной мотивации узлов, создающих блоки, — они забирают ее себе, наряду с основным вознаграждением за создание блока как такового. Об этом процессе мы подробно поговорим в главе о так называемом «майнинге», а здесь лишь упомянем, что комиссия в блокчейн-системах, как правило, не является фиксированной и каждый создатель транзакции сам решает, какую комиссию ему заплатить. Однако если эта комиссия окажется слишком низкой или вовсе нулевой, то транзакция может получить низкий приоритет при формировании новых блоков и будет включена в какой-то из них с большой временной задержкой. Что же касается непосредственной визуализации величины комиссии в теле транзакции, то здесь опять же применен подход максимальной практичности в организации хранения данных — никакой комиссии в транзакциях напрямую не указывается, а рассчитывается она как разница между суммой всех «входов» и «выходов», включая «сдачу», которая оказывается меньше как раз на величину комиссии. Глава о транзакциях и балансах завершает первый раздел книги, содержащий описание общих принципов подавляющего большинства проектов на базе технологии блокчейн. Следующий раздел посвящен наиболее популярным сегодня практическим реализациям на базе технологии распределенного реестра. Часть II ПРАКТИЧЕСКИЕ РЕАЛИЗАЦИИ ПРЕДЫСТОРИЯ ПРОЕКТА БИТКОИН Описание любого масштабного явления обычно начинается с истории его возникновения и переходит к последующему развитию. Но прежде чем приступать к рассказу об истории технологии блокчейн, нам нужно было ознакомиться с рядом научных и технологических разделов. В противном случае у неискушенного читателя неизбежно возникли бы сложности с пониманием того, что же именно было изобретено и почему эта технологическая новинка имеет такое значение. За последние несколько десятков лет было отмечено изрядное количество попыток придумать технологически защищенные цифровые деньги. Каждый возникший в этой сфере проект был основан на одной или нескольких технологиях, составивших впоследствии неотъемлемую часть концепции блокчейн. Однако ни один из них до момента появления сети Биткоин не смог объединить в себе все необходимые составляющие, чтобы получить законченное, защищенное, да и, в конце концов, просто элегантное решение задачи создания децентрализованного цифрового платежного средства. Теперь обратимся к непосредственной истории развития ранних решений для электронных денег. В 1976 году, еще в доинтернетовскую эпоху, известный австрийский экономист Фридрих Август фон Хайек представил свою книгу под названием «Частные деньги». В ней содержались серьезные рассуждения относительно возможного устранения государственной монополии в управлении денежными эмиссиями, в том числе и предложения по созданию конкурентных финансовых систем. Фон Хайек писал также о возможных негативных последствиях злоупотребления общественным доверием со стороны национальных правительств. Эти предупреждения впоследствии во многом воплотились в реальности, когда финансовый мир начал содрогаться от системных кризисов, порождаемых безответственной политикой крупных банков и финансовых регуляторов ряда государств. Идеи фон Хайека нашли отклик у некоторых криптографов- энтузиастов, которые начали серьезно размышлять над проектированием независимых электронных денежных систем. Их интересовала в первую очередь возможность децентрализовать, а заодно и анонимизировать денежное обращение, избавив его от посредников, находящихся в большинстве случаев под жестким государственным контролем. В 1982 году американский криптограф Дэвид Чаум опубликовал работу под названием «Слепые подписи и неотслеживаемые платежи», которая стала продолжением его исследований в области зашифрованных коммуникаций. Концепцию слепой подписи мы рассматривали ранее, поэтому читатель уже должен иметь представление о принципах ее работы. Именно на базе этой формы ЭЦП Чаум впоследствии создал первую систему обращения электронных денег, которую назвал eCash. Данный проект использовал технологию «слепой цифровой подписи» для авторизации и проверки цифровых банкнот, которыми обменивались контрагенты. При этом сам авторизатор играл роль банка — централизованного сервиса, основной функцией которого являлось обеспечение защиты системы от угрозы повторного расходования цифровых денег. Вместе с тем подобная централизация могла привести к возможной фальсификации клиентских балансов, если бы у владельцев системы возникло такое желание. Тем не менее это был первый проект, в котором были применены алгоритмы асимметричной криптографии для создания электронной платежной системы. Для обеспечения функционирования проекта eCash в 1990 году в Нидерландах была зарегистрирована компания DigiCash, которая в период 1990–1995 годов сотрудничала с банками и крупными платежными системами, в том числе и такими, как VISA. Даже компания Microsoft не осталась в стороне и пыталась интегрировать данный проект в свою на тот момент новейшую и во многом революционную операционную систему Windows 95. Считалось, что наличие интереса со стороны столь серьезных партнеров гарантирует компании DigiCash отличные перспективы развития. Однако просчеты Чаума в стратегии ведения бизнеса привели в 1998 году компанию к банкротству, после чего ее активы были проданы, а сам проект закрыт. Практически в то же время компьютерный инженер и выпускник Вашингтонского университета Вэй Дай представил документ с описанием проекта B-money, который автор определил как распределенную и анонимную электронную денежную систему. В этом проекте нашла свое отражение концепция транзакционной передачи цифровой наличности между владельцами ключей асимметричной криптографии — примерно по тому же принципу, как это было описано в главе, посвященной транзакциям и балансам в блокчейн. То есть транзакция в B-money формировалась через передачу цифровых активов на публичный ключ получателя, играющего роль адреса или счета, и закреплялась электронной подписью отправителя, сформированной при помощи его закрытого ключа. Как и в блокчейн, предполагалось, что и отправитель, и получатель всегда контролируют свои закрытые ключи и, таким образом, могут передавать цифровые деньги друг другу, одновременно математически доказывая свое право владения ими. К сожалению, концепция B-money так и не была реализована как проект, оставшись в истории лишь в виде описания, оказав, однако, довольно существенное влияние на дальнейшую эволюцию цифровых платежных систем. В целом 1998 год был богат на важные события в мировой финансовой индустрии. Глобальный финансовый кризис, зародившись в Азии, прошелся, как ураган, по всему миру, нанеся существенный ущерб экономикам некоторых развивающихся стран. Это заставило многих задуматься о том, что существующая мировая финансовая система, имеющая в большой степени централизованную природу, достаточно уязвима перед лицом экономических кризисов. Причины же, их порождающие, обусловлены либо чрезмерной государственной «зарегулированностью» национальных экономик, либо же банальной некомпетентностью руководителей крупнейших финансовых институтов. Причем как коммерческих, так и имеющих статус государственных структур, включая в том числе центральные банки. Возможно, именно тогда начали зарождаться идеи децентрализованного денежного обращения, позволяющего избежать исключительной зависимости от конъюнктурных решений конкретных персоналий, волею судеб держащих в руках политическую и экономическую власть в своих государствах. Как следствие, каждый новый появлявшийся проект, связанный с децентрализацией платежных процессов, впитывал в себя все эффективные методы, разработанные в этом секторе индустрии ранее, приближая, таким образом, создание решения, которое бы совершило настоящую революцию в системе денежных отношений. Не исключением стал и проект Bit Gold, разработанный в том же году (хотя и публично представленный лишь в 2005) американским ученым венгерского происхождения Ником Сабо, специалистом в области криптографии, информатики и права. Созданная им система, помимо асимметричной криптографии, включала интересный элемент, который впоследствии сыграет важнейшую роль в технологии блокчейн, а именно — необходимость для пользователей системы решать сложные вычислительные задачи с целью формирования эмиссии электронных денег. Задача сводилась к поиску хешей специально заданного вида, где конечным результатом было нахождение строки данных, начинающейся с определенного количества бит с нулевым значением. Поскольку функция хеширования выдает алгоритмически зависимый, но заранее визуально непредсказуемый результат, необходимо перебрать достаточно большое количество различных исходных прообразов, чтобы в конечном итоге совершенно случайно получить такой хеш, вид которого будет удовлетворять условию задачи. В данном случае он должен содержать необходимое количество нулевых символов в начале строки данных. Этот прием для формирования сложновычислимой задачи Ник Сабо позаимствовал у автора проекта Hashcash Адама Бэка, который еще в 1997 году задействовал похожий алгоритм в системе противодействия массовым рассылкам электронной почты. В проекте Бэка тоже было необходимо при отсылке каждого письма вычислять хеш, где первые 20 бит результата должны были являться нулями. Сама по себе задача, с вычислительной точки зрения, была несложной и подразумевала перебор максимум 2 20 вариантов (то есть примерно около 1 млн), на что обычному компьютеру требовалось всего несколько секунд. Однако подобную задачу необходимо было решать для каждого отсылаемого письма, и в случае, если количество адресатов в списке почтовой рассылки было значительным, то объем времени, затрачиваемый на расчеты, пропорционально увеличивался. Результат вычислений добавлялся к служебной информации, сопровождающей каждое электронное письмо, после он чего мог быть легко проверен компьютером получателя на «валидность» в части необходимого количества начальных нулей. Так спам-фильтрам было гораздо проще классифицировать полученное почтовое сообщение. Следует отметить, что слово Gold в названии проекта Сабо было выбрано неслучайно — автор хотел сопоставить понятие сложновычислимых цифровых денег с золотом, которое трудно найти, добыть или подделать. Слиток золота или сделанное из него украшение можно получить только приложением серьезных усилий — сначала трудом геологов и шахтеров, затем литейщиков и, наконец, ювелиров. Ценность золота определяется комбинацией его редкоземельности, уникальных химических свойств и затраченного на его добычу и обработку труда. Далеко не последним фактором в составе ценности также является баланс спроса и предложения этого металла на мировом рынке. Но все же основную роль играет тот факт, что золото в руках владельца доказывает, что для его получения была проделана сложная работа. В 1999 году в статье за авторством криптографов Маркуса Якобсона и Ари Джуелса впервые было введено понятие Proof-of- Work, или «доказательство работы». Данный термин относился к решению криптографической задачи нахождения секретного изначального прообраза, хеш которого удовлетворял бы по сложности определенным требованиям. При этом любой другой участник сети, получив данный рассчитанный прообраз, мог бы легко проверить его валидность, пропустив через процедуру хеширования. Это позволяло получить однозначное доказательство того, что сложная вычислительная работа действительно была проведена узлом, который претендует на признание за ним этого факта. Ник Сабо в своем проекте Bit Gold, используя большинство ранее разработанных методик, действительно очень близко подошел к решению задачи создания защищенных цифровых денег. Однако в его системе существовала уязвимость, которую называют «Атакой Сибиллы» — когда в условиях нахождения в распределенной сети какой-то конкретный узел может попасть в окружение ряда других узлов, контролируемых злоумышленниками. Тогда атакуемый узел может стать жертвой, которая получает исключительно ложную информацию о сетевых транзакциях, а ее собственные транзакции, отправляемые в сеть, могут быть модифицированы атакующими узлами. Помимо этого, существовали и другие проблемы, которые в конечном итоге не позволили Сабо реализовать свой проект на практике. Например, ему так и не удалось решить проблему инфляции цифровых денег, которая неизбежно бы возникала при постепенном увеличении вычислительной мощности узлов, входящих в сеть. Тем не менее труды создателей вышеописанных систем не пропали даром. Спустя непродолжительное время эти принципы найдут отражение в документе, который был представлен миру автором, имя которого тогда было неизвестно никому, а сейчас известно очень многим. Речь идет о человеке, тайна существования которого не разгадана и по сей день — о загадочном создателе технологии блокчейн и, собственно, Биткоина как первого проекта, на ней построенного. Имя этого создателя — Сатоши Накамото, который 31 октября 2008 года представил криптографическому сообществу статью, описывающую принципы его революционного проекта, получившего спустя некоторое время мировую известность. Кто же такой этот Сатоши Накамото и в чем состояли главные отличия его проекта распределенных цифровых денег от подобных, ранее предложенных другими специалистами в области асимметричной криптографии? КТО ПРИДУМАЛ БИТКОИН По мере того как проект Биткоин начал получать широкую известность, многие задались вопросом: кто такой Сатоши Накамото? Существует ли в реальности человек с таким именем или же мы имеем дело лишь с экзотическим псевдонимом? Если попытаться написать имя «Сатоши Накамото» на японском языке, то придется задействовать три иероглифа. «Сатоши» означает «находчивый», «мудрый», «ясное мышление», часть фамилии «Нака» — это «взаимосвязи», а «Мото» — это «основа» или «происхождение». Поскольку реальный Накамото не оставил ни одного технического описания на японском языке, а все коммуникации вел на безупречном английском, был сделан однозначный вывод, что таинственный изобретатель является уроженцем англоязычной среды. В какой-то момент дотошные журналисты сумели обнаружить проживающего в США человека с именем Сатоши Накамото, однако тот упорно отрицал свою причастность к созданию Биткоина. Впрочем, никто особо на этом и не настаивал. Дело в том, что найденный кандидат довольно неоднозначно соотносился с образом человека, который действительно мог бы создать подобный проект. К тому же он должен был быть обладателем значительного криптовалютного запаса, делающего его миллиардером и одним из самых богатых людей в мире. Носителем имени оказался пожилой американец японского происхождения, проживающий в городе Темпл-Сити, штат Калифорния. Выпускник физического факультета Калифорнийского Политехнического Университета и увлекающийся железнодорожными моделями Дориан Сатоши Накамото однозначно обладает серьезными математическими способностями и даже владеет навыками программирования. Тем не менее сам он утверждает, что имеет достаточно слабое понятие о криптографии, а о самом проекте Биткоин узнал от журналистов лишь в тот самый день, когда они возникли на пороге его дома. Что, впрочем, не помешало ему тут же на всякий случай вызвать полицию. Кроме того, он заявил, что длительное время оставался безработным, перебиваясь случайными заработками, отчего его доходы сильно упали. Финансовые проблемы были столь серьезны, что, по его словам, он даже был вынужден отказаться от подключения к сети интернет у себя дома. В конечном итоге Накамото попросил «уважать право на личную жизнь и оставить его в покое», а на нескольких чрезмерно назойливых журналистов даже пытался подавать в суд. Но в то же время он выразил благодарность представителям криптосообщества — за моральную и даже материальную поддержку, которая ему была в определенной степени оказана. В итоге многие сделали вывод, что либо господин Накамото весьма искусно притворяется непричастным, либо он действительно говорит правду, и тогда придется затратить немалые усилия для поиска настоящего создателя Биткоина. Или «создателей» — если это не один человек, а целая группа людей, что также вполне вероятно. Если предположить, что мы имеем дело с псевдонимом конкретного человека, то одним из лучших кандидатов на роль таинственного создателя технологии блокчейн был бы сам Ник |