Автор книги: Алексей Водоватов
Жанр: Ценные бумаги и инвестиции, Бизнес-Книги
Возрастные ограничения: +12
сообщить о неприемлемом содержимом
Текущая страница: 2 (всего у книги 14 страниц) [доступный отрывок для чтения: 5 страниц]
Часть 1
Основы криптоэкономики
Глава 1
Блокчейн как технология будущего
В этой главе нам придется серьезно загрузить вас техническими терминами. Придется говорить о математически сложных вещах, функциях и прочем. Но не пугайтесь, не все так сложно, как кажется на первый взгляд. В принципе, я старался изложить все на простых примерах, но, к сожалению, некоторые вещи все равно могут показаться непонятными. Это нормально! И не стоит откладывать книгу совсем. При желании можно эту главу пропустить, перейти к следующим главам, а потом к ней вернуться. Решать вам, а мы пока начнем.
Темпы развития технологий в последние годы не перестают удивлять и восхищать. Посмотрите, какой качественный скачок сделал интернет – от простого инструмента для получения информации до сложной экосистемы с умными технологиями и децентрализованным управлением.
Вспомните, с чего начинался Web 1.0: с электронной почты, пересылки файлов по FTP. А затем появились веб-страницы, и люди, не отходя от компьютера, могли наслаждаться картинами из Третьяковки, видами ночного Парижа и читать «научные» статьи о невозможности создать искусственный интеллект. Если кто-то был не согласен с этим, то ему сначала следовало научиться создавать сайты, а уже потом доносить до других свою точку зрения. Это была эра так называемого Web 1.0. Сайты были статичными и не давали возможности участвовать в создании контента. Пользователи могли только читать информацию, но не взаимодействовать с ней. Но уже то было хорошо, что появились гиперссылки, позволяющие быстро переходить со страницы на страницу, от сайта к сайту, ускоряя поиск нужной информации и впечатлений.
На смену Web 1.0 пришел Web 2.0. Сайты становились все более интерактивными, а у людей появилась возможность размещать на них свой контент. И все ринулись выкладывать фотки, стихи и просто мысли вслух. Начали создавать социальные сети, сильно изменившие привычные представления об отдыхе и общении. Помимо социального взаимодействия, Web 2.0 характеризуется появлением облачных технологий. Но поскольку данные хранились и хранятся сейчас на серверах компаний, это не способствует безопасности самих данных. Любой сотрудник этих компаний может иметь доступ к вашей информации, при желании заблокировать ваш аккаунт и сделать что угодно с вашими данными. И это нам наглядно демонстрируют в последнее время такие глобальные проекты, как YouTube, Facebook[1]1
Соцсеть принадлежит компании Meta, признанной экстремистской организацией, и запрещена на территории Российской Федерации.
[Закрыть], X (бывший Twitter) и другие, блокируя и удаляя аккаунты неугодных пользователей по политическим мотивам.
И вот уже на подходе Web 3.0. Он характеризуется отсутствием единого центра принятия решений по хранению данных и использует программное обеспечение с открытым исходным кодом. Применяются смарт-контракты в работе приложений, сайтов, протоколов. В целом функционирование Web 3.0 осуществляется без единого централизованного управления через цепочку смарт-контрактов. То есть те или иные действия запускаются или отменяются не по чьей-то команде, а согласно зашитой в программном коде инструкции. Смарт-контракт запускается на блокчейне и выполняет условия сделки между двумя или более сторонами. Он работает как обычный контракт, но вместо бумажного документа условия записываются в коде. Когда все условия выполнены, смарт-контракт автоматически выполняет сделку. Это позволяет применять их в самых разных областях, таких как финансы, недвижимость, логистика и т. д. Ускоряется и упрощается процесс сделки, уменьшаются риски, связанные с ее выполнением. Такие контракты могут быть использованы для автоматизации процессов, которые раньше требовали участия третьей стороны, такой как банк или юрист, что исключает любой подлог, злоупотребления, коррупцию. Например, если вы покупаете квартиру, то свидетельство о праве собственности на нее будет автоматически оформлено на вас только в том случае, если на банковский счет продавца поступит вся сумма, оговоренная в смарт-контракте.
К сожалению, это пока отдаленная перспектива, так как база данных собственников недвижимости у нас не оцифрована и не прописана в блокчейне. Но такая перспектива не за горами. Это большой сегмент рынка, и в обществе есть запрос на такое решение. Недвижимость относится к категории RWA (Real World Assets, или «реальные активы в реальном мире»), и право собственности на нее может передаваться с применением блокчейна, что позволит сделать этот рынок прозрачным, защищенным от мошенничества и злоупотреблений, а также высвободит значительные людские ресурсы. Web 3.0 идет именно в эту сторону.
Многие прорывные технологии, реализованные недавно, занимали умы специалистов еще много лет назад. Тот же искусственный интеллект был предметом рассмотрения еще в 1956 году. Тогда на конференции по механизации интеллекта Джон Маккарти[2]2
Джон Маккарти (1927–2011) – американский информатик, изобретатель языка Лисп. В 1956 году в Дартмутском колледже прошла конференция по «механизации интеллекта», на которой Маккарти предложил термин «искусственный интеллект». Этот момент можно считать началом истории ИИ.
[Закрыть] предложил использовать сам термин «искусственный интеллект».
Идея блокчейна тоже появилась не вчера. Еще в 1991 году ученые Стюарт Хабер и У. Скотт Шторнетт[3]3
Стюарт Хабер и У. Скотт Шторнетт – американские криптографы, известные вкладом в криптографию и технологии сохранения конфиденциальности, авторы блокчейна.
[Закрыть] внедрили для цифровых документов решение со штампом времени, не позволяющее подделывать эти документы или оформлять их задним числом. Однако тогда эта технология не нашла широкого применения. А через четыре года, в 2008 году, начал свое победное шествие по миру биткоин.
Упрощенная модель
Давайте смоделируем ситуацию упрощенной блокчейн-системы. Представьте, что яхта с капитаном и тремя бизнесменами на борту потерпела крушение и все четверо вместе с вещами были выброшены на необитаемый остров.
Один из бизнесменов (Петя) предложил второму (Коле) заплатить 100 долларов за его зонтик от солнца. Но так как денег с собой ни у кого не было, решили оформить сделку распиской, а оплатить деньгами после возвращения. Написали четыре расписки – чтобы у каждого был свой экземпляр на случай утери кем-либо. Капитан заверил все расписки печатью. Потом Коля захотел купить у третьего бизнесмена (Вани) солнечные очки. Сделку тоже оформили расписками в четырех экземплярах. Для удобства каждый из четырех завел специальную папку для расписок. Таким же образом через расписку Ваня купил у Пети автомобиль, а Петя у Коли – гараж. Все расписки заверялись у капитана и подшивались в папки. Когда первая папка заполнилась, все завели вторую папку, а первые капитан упаковал и опечатал. Однако стоит заметить, что абсолютно одинаковые папки хранились у всех троих хозяев.
В этой ситуации легко провести аналогию с блокчейн-системой. Здесь так же, как и в блокчейне, присутствует децентрализация, поскольку у каждого бизнесмена есть все расписки, выданные на острове, и каждый хранит папку в своем потайном месте. Это защищает от утери или умышленной порчи документов. Есть аналог верификации – печать капитана, удостоверяющая, что право на зонтик перешло от Коли к Пете. Есть аналог баз данных блокчейна или ноды – это документы. Самого капитана можно сравнить с майнером, выполняющим проверку транзакций (выдачей расписок) и блоков (папок с расписками). Как и в реальном блокчейне, передача прав на имущество бизнесменов осуществлялась в отсутствие доступа к ним самим (машина, гараж). Потому что транзакция – это передача прав на активы, а не самих активов.
Ознакомившись с упрощенной моделью блокчейна, давайте детально разберем, для чего реализована эта технология и какие она дает преимущества по сравнению с традиционными способами передачи прав на что-либо от одного человека к другому.
Дублирование
Основа основ блокчейна – это невозможность изменить какой-либо блок (записи, информацию), не внеся изменения во все предыдущие блоки со дня создания блокчейна, а также многократное дублирование (создание полных копий в другом месте) всех блоков. Такие же принципы являются основой существования Web 3.0 в целом. Благодаря этому дублированию обеспечивается надежность системы – неисправность одного или нескольких узлов не нарушит целостности всего блокчейна, в результате чего не пропадет нужная информация и ее нельзя будет подделать или изменить. И если в один или несколько блоков злоумышленники попытаются внести ложные данные, то они не будут приняты остальными узлами, а данный блок будет исключен из сети блокчейна. К примеру, если майнер-злоумышленник, чтобы получить вознаграждение, сгенерирует, а по сути выдумает, ложный блок и отправит его в сеть блокчейна, то другие майнеры сразу же обнаружат его замыслы и исключат из своей сети. Как иммунная система отторгает чужеродные клетки, попавшие в организм, так и блокчейн отторгнет узлы, пытающиеся добавить ложные блоки.
Любой человек знает, что от квартиры полагается иметь запасной ключ, а от неприятностей – запасной план. У воинов Древнего Рима были запасной меч и дополнительные дротики. Запасной парашют и два двигателя в самолете – это тоже примеры страховки методом дублирования. Или взять космическую ракету. Она стоит миллионы. Поэтому все основные узлы в ней имеют дублеров. И если вдруг один узел не срабатывает, то тут же включается второй, причем без задержки, практически одновременно с первым. Чем больше таких дублирующих блоков, тем надежнее ракета.
Дублирование делает надежнее, безотказнее не только технические системы, но и информационные, такие как блокчейн. И тут возникает вопрос: сколько нужно дублирующих блоков, чтобы система работала без сбоев? Можно ли сделать вывод, что в целом система работает корректно, если часть блоков работает неправильно?
Представим, что есть распределенная сеть, т. е. несколько компьютеров, серверов, которые находятся в абсолютно разных точках земного шара, объединенных в одну цепь. От каждого из них должно быть разослано какое-то сообщение всем остальным компьютерам. А те, получив его, в свою очередь тоже продолжат рассылку. Но некоторые из них могут принадлежать злоумышленникам, а некоторые просто не работать. Спрашивается: какая часть серверов должна функционировать нормально, чтобы те инструкции, что содержатся в рассылаемом сообщении, были выполнены правильно, несмотря на противодействие и сбои? Ведь распределенная сеть компьютеров, участвующих в блокчейне, не должна зависеть от злого умысла или халатности одного или ряда участников. Есть ли математически доказанное решение, как обеспечить консенсус в условиях децентрализации и отсутствия доверия между участниками системы? Такое решение позволило бы участникам достигнуть единства относительно того, какие транзакции считать верными.
Византийская задача
Оказалось, что эта задача не нова. Как логическая дилемма она была придумана в 1982 году и получила название «Задача византийских генералов». Суть ее в том, что у каждого генерала есть своя армия и они должны вместе выполнить приказ либо на атаку, либо на отступление. Несогласованность действий чревата разгромом армий. Но среди генералов могут быть предатели, и они могут передавать другим генералам искаженные приказы.
Математически доказано, что для успеха необходимо, чтобы более чем две трети генералов (67 из 100) были верными. Тогда истинный приказ будет выполнен, несмотря на козни предателей.
Применительно к блокчейну генерал – это сетевой узел. Чтобы признать транзакцию действительной и она могла попасть в блокчейн, надо, чтобы две трети плюс один узел подтвердили это. Данный процесс называется достижением консенсуса. В биткоине этому способствуют дорогой процесс майнинга, надежное шифрование и огромное количество узлов, или майнеров, со своими компьютерами.
Децентрализация
После того как была решена проблема хранения достоверных данных, развитие блокчейна пошло семимильными шагами. Это движение шло в сторону децентрализации. Децентрализация – способ управления чем-либо без одного-единственного центра принятия решений. Как пример – общее собрание жильцов дома, на котором они совместно решают, убирать снег или нет. Большинство за – убираем. Нет – не убираем. Стали появляться так называемые ноды (node в переводе с английского – «узел»). Каждая нода содержит копию всего блокчейна: блоков, транзакций и смарт-контрактов, созданных за все время его существования. К примеру, размер полной ноды биткоина, где хранится вся база блокчейна, составляет около 450 Гб.
Хранение всех блоков в нодах очень похоже на известный принцип не класть все яйца в одну корзину. Для любой серьезной информации, будь то бизнес или госуправление, предусмотрено распределенное хранение данных на разных серверах в разных дата-центрах в разных регионах. И чем сильнее такая децентрализация, тем устойчивее система. Так и здесь. По сути, блокчейн – это реестр записей состояний чего-либо в максимально распределенных и удаленных друг от друга местах.
Криптография
Еще одним краеугольным камнем блокчейна, его сердцевиной является криптография, т. е. защита информации путем шифрования. Криптография обеспечивает корректность и неизменность блоков, создание хэшей и защиту от злоумышленников. Если говорить простыми словами, то хэш – это зашифрованная информация. Подробнее о хэшах мы поговорим ниже.
Транзакция в блокчейне представляет собой запись об обмене активами или выполнении определенного действия внутри блокчейн-системы. Эта запись содержит информацию о передаче средств, активов или прав между участниками сети. Если запись внесена в сеть (в блокчейн), то никто и ничто не сможет ее удалить или изменить.
Продемонстрируем шифрование самым простым примером – шифром подстановки. Если в привычном алфавите буквы идут по порядку от А до Я, то в зашифрованном первой букве соответствует последняя буква:
А = Я, Б = Ю, В = Э, Г = Ь и т. д.
Теперь мы можем взять любой исходный текст, например «КРИПТА», и зашифровать его, заменяя каждую букву исходного слова буквой из «перевернутого» алфавита. Получится «ФОЦПМЯ».
Но современные алгоритмы шифрования на много порядков сложнее, чем приведенный пример. В них для защиты от вмешательства и искажения транзакций применяются хэш-функции. Они преобразуют входные данные произвольной длины в зашифрованные выходные данные фиксированной длины. Это означает, что если на вход хэш-функции вы подадите просто точку, т. е. одиночный символ, то на выходе вы получите хэш из 64 символов. А если на вход хэш-функции вы подадите «Войну и мир», то на выходе вы все равно получите 64 символа.
Транзакции в биткоине работают на стандарте SHA256 и имеют в качестве хэша 64 символа, буквы и цифры. Невозможно получить два одинаковых хэша при разных начальных данных – как невозможно два раза бросить на стол горсть песка и получить ту же конфигурацию песчинок. В хэше малейшее изменение входных данных всегда порождает сильное изменение в результатах. Это так называемый эффект лавины. Посмотрите, как кардинально меняется хэш при смене всего одной буквы в исходном тексте:
• Хэш для слова Blockchain:
625da44e4eaf58d61cf048d168aa6f5e492dea166d8bb54ec06c30de07db57e1
• Хэш для слова blockchain:
ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1
• Хэш для слова Bl0ckchain:
511429398e2213603f4e5dd3fff1f989447c52162b0e0a28fe049288359220fc
Каждый новый блок транзакций ссылается на хэш предыдущего блока за счет того, что каждый новый блок создается с участием предыдущего. Хэш нового блока генерируется по определенному алгоритму (об этом поговорим позже) на базе хэша всех транзакций, включенных в блок, а также хэша предыдущего блока. Хэш блока – это уникальный набор из 64 символов, созданных хэш-функцией из нескольких хэшей. Он идентифицирует блок и помогает поддерживать безопасность и целостность всей сети. Можно сказать, что все когда-либо выполненные транзакции и их последовательность зашифрованы в хэше нового блока. Поэтому неизменность хэша одного блока гарантирует неизменность всего блокчейна. Вот тут у нас с вами был полный набор непонятностей. Но не пугайтесь! Все это сводится к тому, как я пишу о том, что невозможно изменить информацию, записанную в блокчейн. Это единственное, что нам надо понимать в дальнейшем. Информация, записанная в блокчейн, вечна и неизменяема. Или, как говорили раньше, высечена в камне.
Это чем-то похоже на жизнь, состоящую из дней, где каждый новый зависит от предыдущего. Каждый из них уже состоялся и не подвержен корректировке.
ЧЕЛОВЕК НЕ МОЖЕТ НИЧЕГО ИЗМЕНИТЬ В ПРОШЛОМ, ОНО ЗАФИКСИРОВАНО НАВЕКИ. ТАК И В БЛОКЧЕЙНЕ: НЫНЕШНЕЕ ЕГО СОСТОЯНИЕ – ЭТО ДОСТОЯНИЕ ИСТОРИИ, НИЧЕГО ПОПРАВИТЬ НЕЛЬЗЯ.
Можно только просмотреть события, т. е. транзакции. Всегда следует помнить, что хэш – это не архив, который можно распаковать и получить исходный текст. Переводя с помощью хэш-функций «Войну и мир» в хэш (т. е. строку из 64 символов), вы всегда получите один и тот же результат. Однако если вы попытаетесь превратить хэш «Войны и мира» обратно в реальный текст, вы не получите ничего. Таким образом, злоумышленник, видя ваш хэш в системе, не может его раскодировать и получить доступ к вашим активам.
Криптография в блокчейне, помимо хэш-функций, повсеместно применяет цифровые подписи. Они предусматривают применение двух ключей. Первый – закрытый – нужен для создания цифровых подписей и хранится в секрете. Второй – открытый – используется для проверки электронной подписи. Когда пользователь создает свой криптовалютный кошелек, внутри этого кошелька сразу же генерируются пары таких ключей.
Открытый ключ можно сравнить с почтовым адресом, на который придет транзакция. Все могут видеть его. А приватный, т. е. закрытый ключ, жестко привязанный к вашему открытому, не видит никто. Можно провести аналогию с реальным миром: все могут знать ваш домашний адрес, но войти в квартиру можете только вы или тот, у кого есть ключ от нее (в блокчейне это закрытый ключ).
Если открытый ключ еще можно вычислить на основе закрытого ключа, то обратное преобразование практически нереально.
Как работает блокчейн
Разобрав, как обеспечивается безопасность и надежность блокчейн-систем, рассмотрим вопрос их функционирования.
Схематично работа блокчейна выглядит так:
1. Пользователь создает транзакцию. Транзакция – это передача прав на какие-то активы: биткоины, эфиры или другие токены. Запись о передаче таких прав отправляется в сеть блокчейна. Следует заметить: передаются только права на активы, а не сами активы. Криптовалюта в виде файлов не пересылается от одного человека к другому.
2. Отдельные транзакции собираются в блок. В нем может быть несколько тысяч транзакций – это зависит от максимального допустимого размера блока. К примеру, в биткоине блоки не могут превышать 1 Мб. Принцип формирования блоков в разных блокчейнах разный.
3. Информация о новом созданном блоке распространяется по сети к участникам, которые будут проверять данные в блоке (майнерам).
4. Майнеры проверяют корректность транзакции, например наличие средств у отправителя. Если проверка проходит успешно, они добавляют этот блок к своей копии цепочки блоков, а остальные майнеры проверяют истинность и правильность добавленного блока, тем самым защищая блокчейн от мошенников.
5. После того как блок успешно проверен и добавлен к цепочке, майнеры подтверждают всю цепочку, обеспечивая непрерывность и безопасность всей транзакционной истории. В среднем подтверждение одной транзакции занимает около часа. Шесть блоков – по 10 минут на каждый.
Таким образом, процесс проверки и добавления блоков в цепочку происходит децентрализованно, и каждый участник сети имеет свою копию цепочки блоков, что обеспечивает прозрачность и надежность системы.
Представим это на примере обычного банка:
1. Вы приходите в отделение банка и берете бланк – заявку на отправление денег. Или, как теперь делают все, заходите в приложение вашего банка и выбираете кнопку «Перевод». Вносите туда номер счета получателя, название его банка. Или, в случае отправки через приложение, вводите его телефон или номер карты и тоже выбираете банк получателя.
2. Банк собирает все заявки на оплату в некую папку, файл, который потом передается исполнителям для обработки. В случае с электронными оплатами делается то же самое, но гораздо быстрее.
3. Информация о данной заявке на перевод отправляется по всем вашим счетам и картам, где собирается полная информация о состоянии вашего счета.
4. Банковский работник, оператор, проверяет правильность оформления заявки, номера счета и наличие на счете необходимой к отправке суммы. То же самое делается в приложении, только там сразу не дадут неправильно оформить заявку или ввести бо́льшую, чем есть на счете, сумму к отправке.
5. После этого деньги от вас уходят к получателю. Эти данные остаются в истории ваших операций.
Таким образом, в блокчейн-системе все аналогично, только называется немного по-другому. Никто не изобретал велосипед.
Правообладателям!
Данное произведение размещено по согласованию с ООО "ЛитРес" (20% исходного текста). Если размещение книги нарушает чьи-либо права, то сообщите об этом.Читателям!
Оплатили, но не знаете что делать дальше?