Читать книгу: «Как заработать на криптовалютах и блокчейне. Объясняем на пальцах», страница 3

Шрифт:

Blockchain (принципы и алгоритм работы)

Что первично – курица или яйцо?

Внутри биткойна как раз находится технология блокчейн.

Иногда в Сети возникают споры: что же первично – биткойн или блокчейн? И кажется, что первичной должна быть технология сохранения информации, но, на самом деле, первичной была концепция криптовалюты и в ней была описана технология блокчейн.

Конечно, можно найти более ранние научные исследования и практические разработки, посвященные шифрованию и хранению информации. Точно так же, как есть более ранние описания концепции цифровых валют. Однако в едином, законченном и наиболее близком к актуальному состоянию криптовалюты и блокчейн были описаны в White Paper биткойна.

ВАЖНЫЙ ВЫВОД

Биткойн – это не то же самое, что блокчейн.

Блокчейн – это вообще необязательно криптовалюта.

Существуют блокчейны, которые используются не для финансовых расчетов, а, например, для хранения файлов или для построения распределенных вычислительных систем. Прежде чем мы перейдем к описанию работы блокчейна, давайте поговорим о том, для чего же он в принципе нужен. От чего весь технологический мир сходит с ума? Что же такое уникальное, неповторимое и суперпрогрессивное дает нам эта технология?

Для чего нужен блокчейн?

Физический мир и цифровая реальность

Когда появились компьютеры, физический мир вокруг нас начал дополняться цифровым. В физическом мире мы писали письмо на бумаге, отправляли по почте и ждали, пока оно переместится из одной точки пространства в другую. В цифровом мире мы набираем сообщение на смартфоне и мгновенно отсылаем, скорость доставки практически не зависит от расстояния между отправителем и получателем.

Цифровая реальность очень сильно упростила и ускорила нашу жизнь: мы переписываемся, общаемся, договариваемся, делаем покупки через Интернет. Но у цифрового мира всегда был очень серьезный недостаток: в нем очень легко изменить, удалить и подделать данные. Электронный документ очень просто отредактировать или удалить. Чтобы защитить цифровые данные, придумывают сложные и дорогостоящие системы безопасности.

Это сильно ограничивает автоматизацию и развитие цифрового мира вокруг нас.

Все серьезные действия и важные договоренности по-прежнему обязательно фиксируются на бумаге. Подделать бумажный документ во много раз сложнее, чем цифровой, а если и получится, то следы подделки будут заметны.

Блокчейн заменяет бумагу в цифровом мире

С появлением биткойна, а точнее с выделением блокчейна в отдельную технологию, цифровой мир получил новое направление развития. Сохраненные в блокчейне цифровые данные невозможно подделать или удалить. Внутри блокчейна информация защищена от подделки даже надежнее, чем если бы она была распечатана на бумаге. Бумажный экземпляр можно порвать или уничтожить каким-то более изощренным способом, а в блокчейне создается огромное количество копий каждой записи и уничтожение одной из них не приведет к серьезным последствиям. Блокчейн заменяет бумагу в цифровом мире и надежно защищает цифровые данные, как если бы они были сохранены на бумаге или любым другим способом в физическом мире.

В будущем появятся программы, которые объединят в огромную сеть все компьютеры мира. Любой желающий сможет воспользоваться возможностями такого сверхкомпьютера для своих вычислений.

Чтобы защитить результаты вычислений от подделок, их сохраняют в блокчейн. Блокчейн может взаимодействовать с цифровыми валютами, поэтому, получив результаты вычислений, можно будет сделать все необходимые денежные переводы и начисления.

Выплаты от страховой через несколько минут после ДТП

Например, в такой сети могла бы обрабатываться информация о страховых случаях по автомобильным авариям. Участники аварии загружают фотографии повреждений, записи видеорегистраторов, указывают дату и место аварии. Сверхкомпьютер обрабатывает эти данные, дополнительно собирает информацию с ближайших камер видеонаблюдения, высчитывает траектории движения, строит сценарий и схему аварии, выявляет нарушение ПДД, определяет виновника происшествия, на основе фотографий оценивает размер ущерба и тут же производит взаиморасчеты между участниками аварии.

Если учесть, что у компьютера есть вычислительные мощности всех компьютеров мира, то такая обработка займет всего несколько минут.

Аналогичные примеры можно придумать для медицины, образования, научных исследований, патентов, сделок с недвижимостью, логистики и большинства других отраслей. Блокчейн может стать той технологией, которая позволит объединить другие достижения человеческого разума: Big Data, нейронные сети, искусственный интеллект, – и создать на их основе нечто совершенно новое.

Именно потрясающие возможности для сближения физического и цифрового миров, скрытые внутри блокчейна, вдохновляют сейчас исследователей и разработчиков на изучение этой технологии и создание новых блокчейнов, решающих самые разные задачи.

Как работает блокчейн?

Технически блокчейн похож на e-mail: у каждого пользователя есть свой уникальный адрес, он называется публичным. Все публичные адреса объединены в одну сеть, которую и называют сетью биткойн. Внутри этой сети владельцы адресов могут обмениваться сообщениями по специальному протоколу.

Мы уже сравнили блокчейн с интернет-банком и с электронной почтой, теперь расскажу про четыре важных отличия блокчейна от привычных нам технологий.

1. Блокчейн – это полностью автоматизированная система, в нем строго выполняются запрограммированные действия. Блокчейн никому не принадлежит. С одной стороны, это дает нам полную свободу действий, но, с другой стороны, «свобода порождает ответственность», поэтому внутри блокчейна мы можем полагаться только на себя. Здесь нет техподдержки, менеджеров или программистов, которые могут помочь в случае каких-то проблем: восстановить забытый пароль, отменить транзакцию, заблокировать счет мошенников и вернуть украденные средства.

2. При подключении к блокчейну нам не нужно указывать никакую информацию о себе. Здесь не нужны имена, фамилии, резервные адреса, телефон для восстановления пароля, девичья фамилии матери и т. д. По этой причине часто говорят об анонимности внутри блокчейна. Действительно, при создании аккаунта нет никакой явной возможности идентифицировать хозяина.

3. Блокчейн прозрачен – вся информация внутри него видна всем участникам сети. Любой желающий может посмотреть, что хранится у вас в кошельке, какие переводы и на какие адреса вы делали. Но, как следует из пункта 2, мы не знаем, кто стоит за этими адресами. Поэтому фактически в прозрачном мире блокчейна всегда можно посмотреть, что адрес А перевел адресу Б такую-то сумму. Согласитесь, в большинстве случаев это не очень информативно ☺.

4. В роли пароля от публичного адреса выступает приватный адрес. Пара из публичного и приватного адреса генерируется автоматически при подключении к блокчейну, то есть не нужно ничего придумывать самостоятельно. Но очень важно сохранить оба ключа в надежном месте. Если вы потеряете приватный ключ, то восстановить его не получится. Вместе с потерей приватного ключа вы полностью теряете и доступ к своему аккаунту.

Я уже несколько раз говорила, что вся информация внутри блокчейна сохраняется очень надежно. Давайте разберемся, каким образом достигается такой уровень защиты.

Ноды

Все очень просто – как включить телевизор ☺.

Чтобы начать работать с блокчейном, например с биткойном, нужно завести кошелек: скачать специальную программу на свой компьютер или смартфон. После установки некоторые кошельки в автоматическом режиме начинают скачивать весь блокчейн на ваш компьютер.

Устанавливая кошелек на компьютер, вы скачиваете полную копию блокчейна. Получается, что сколько кошельков установлено на разных компьютерах, столько резервных копий блокчейна существует.

Конечно, так делают не все, а только так называемые теплые, или толстые, кошельки. Подробнее про кошельки у нас есть отдельная глава, поэтому пока просто запомните, что скачивать себе на компьютер весь блокчейн не обязательно.

С технической точки зрения, участники блокчейн-сети, которые хранят у себя полную копию блокчейна, называются ноды. А с человеческой точки зрения, владельцев таких кошельков называют криптоэнтузиастами, так как блокчейн может занимать достаточно много места на компьютере.

Например, по состоянию на весну 2018 года один из самых популярных блокчейнов, Ethereum, занимает около 500 GB на жестком диске. Понятно, что не на всяком компьютере будет достаточно ресурсов для хранения полной ноды блокчейна.

Владельцы нод делают огромное и очень полезное дело для всего блокчейна: многократное копирование является одним из инструментов защиты данных внутри блокчейна. Если что-то произойдет с одной из нод, данные можно будет спокойно восстановить из другой. Чтобы действительно серьезно повредить блокчейну, нужно одновременно вывести из строя больше половины нод. А так как ноды находятся на компьютерах несвязанных участников, сделать это достаточно сложно.

Некоторые криптоэнтузиасты делают свои ноды публичными, то есть разрешают другим кошелькам подключаться к ним, чтобы совершать транзакции и получать актуальную информацию. Такие участники сети тоже приносят ощутимую пользу блокчейну, потому что огромное количество кошельков работает с блокчейном именно через ноды-посредники. С одной стороны, это менее безопасно, чем держать свою ноду и работать с блокчейном напрямую, а с другой – гораздо удобнее и не требует такого количества ресурсов на компьютере.

В чем опасность подключения через ноду-посредника? Подключаясь к чужой ноде, мы вынуждены доверять ей и надеяться, что владелец не строит коварных планов по перехвату наших транзакций и передаче нам ложных сведений о блокчейне.

Чтобы поддерживать данные в актуальном состоянии, ноды постоянно синхронизируют свою информацию с другими участниками сети. Для этого ноды устанавливают между собой peer-to-peer соединения. Похожий протокол используется в торрентах. Все, кто подключается к торренту, устанавливают специальную программу. Когда компьютер с такой программой подключен к сети, другие участники могут скачивать с него файлы. Чтобы дать другим людям доступ к файлам, их не надо никуда загружать, нужно просто установить торрент-программу и добавить файл в разрешенные для скачивания.

Примерно так же взаимодействуют ноды блокчейна: установленный кошелек скачивает обновленные данные о транзакциях с других нод и отдает информацию о своих. Для такой синхронизации у ноды должен быть доступ в Интернет. Если компьютер с нодой какое-то время был отключен от сети, то при запуске программы сначала произойдет синхронизация всех данных, и только после этого можно будет увидеть актуальный баланс и делать переводы.

Пара ключей: публичный и приватный

При создании кошелька для него автоматически создается пара из двух ключей: публичного и приватного. Публичный ключ, или публичный адрес, – это то, что вы передаете всем желающим отправить вам деньги. А вот приватный нужно хранить в секретном и очень надежном месте, так как для подтверждения владения кошельком и управления им обязательно нужен приватный (секретный) ключ. Фактически человек, у которого есть приватный ключ, является владельцем кошелька и может им полностью распоряжаться.

Криптовалютный кошелек можно сравнить с анонимной прозрачной ячейкой в банке: все видят ее содержимое, а принадлежать оно будет тому, у кого есть ключ. При этом ячейка защищена очень надежно, ее невозможно взломать и вытащить содержимое без ключа.

Представьте, что этот ключ от ячейки, где деньги лежат, был сломан или потерян. В этом случае доступ в ячейку не сможет получить никто, и все деньги, которые в ней лежат, останутся там навсегда.

А с другой стороны, если кто-то получил ключ, то он спокойно придет в ячейку и запросто заберет ее содержимое. Так как наша ячейка абсолютно прозрачна, то любой желающий может увидеть, что в ней хранится, и понять, стоит ли тратить время и силы, пытаясь завладеть ключом от этой ячейки.

Хэширование

Итак, мы знаем, что блокчейн – это сеть, участники сети называются нодами, для подключения к сети нужна специальная программа-кошелек. При создании кошелька мы получаем публичный и приватный ключи, которые очень важно сохранить. Эти ключи невозможно восстановить или сменить, они генерируются автоматически, поэтому нельзя установить свой приватный ключ, который будет проще запомнить.

Перевод криптовалюты с одного адреса на другой называется транзакция. Кстати, если речь идет о блокчейне, в котором хранятся файлы, а не деньги, то транзакцией будет называться запрос на загрузку или скачивание файла. В общем, любое сообщение, которое мы отправляем с одного блокчейнадреса на другой, – это транзакция.

Перед отправкой транзакции в сеть кошелек «подписывает» ее нашим приватным ключом.

Как он ее подписывает? Очень просто, выполняя всего три шага:

1. Все данные из нашей транзакции собираются в одну строку.

2. Эта строка обрабатывается при помощи специального шифровального алгоритма.

3. В результате получается строка-подпись. Она называется хэш (hash), а весь этот процесс называется хэширование.

Хэширование – это очень важная часть блокчейна, при этом она опять-таки не является его изобретением. Программисты достаточно давно используют хэши для безопасного хранения различных данных.

Например, когда вы регистрируетесь в каком-нибудь интернет-магазине и придумываете себе пароль, в базе данных магазина сохраняется не ваш пароль, а его обработанная версия – хэш. Когда вы вводите свой пароль, сайт хэширует его и сравнивает с хэшем, который уже хранится в базе данных. Если значения совпадут, значит, вы ввели правильный пароль.

Это нужно для того, чтобы даже сотрудники этого магазина не могли залезть в базу данных, подсмотреть ваш пароль и зайти с ним в ваш аккаунт. Из-за того, что в базе магазина нет вашего пароля, сайт не может прислать ваш старый пароль, если вы вдруг его забудете. Но он может прислать ссылку на ваш e-mail, по которой вы сможете придумать новый пароль.

У хэширования есть четыре очень важных свойства:

1. Алгоритм работает всегда одинаково: передавая одни и те же данные, мы всегда будем получать одинаковую хэш-строку в результате. Именно это свойство хэша используется при проверке данных, передаваемых из кошелька в блокчейн.

2. Хэширование – это необратимая функция, то есть ее невозможно расшифровать обратно. Даже зная алгоритм, по которому данные были зашифрованы, мы не можем вычислить, что же было в исходной строке.

3. Мы можем обрабатывать строку любой длины, при этом в результате всегда будет получен хэш одинаковой длины. Можем взять текст «Войны и мира» или всего одну цифру, – в результате хэширования будет получено одинаковое количество символов.

4. При малейшем изменении тех данных, которые мы хэшируем, результаты будут отличаться очень сильно.

Рис. 2. Как работает хэширование


На рисунке 2 видно, как изменится результат хэширования, если мы всего лишь уберем знак точки в конце исходной строки.


Реестр транзакций

Вернемся к нашей транзакции. Кошелек собирает все данные о транзакции, подписывает их при помощи приватного ключа и передает полученный хэш в единый реестр транзакций блокчейна.

В реестре все транзакции, подписанные кошельками, собираются в один длинный список и ждут своей очереди на проверку (верификацию, валидацию). Если очень сильно упростить процедуру, то суть проверки состоит в том, что участники сети берут исходные данные транзакции, добавляют к ним ваш публичный адрес и вычисляют хэш. Потом сравнивают полученный хэш с хэшем в реестре. Для всех вычислений и сравнений используются инструменты из высшей математики, которые заложены в алгоритмах блокчейна. Если все правильно, то транзакция считается валидной и будет добавлена в блок к другим «правильным» транзакциям.


Майнинг

Кто же выполняет проверки транзакций? Этой полезной работой занимается особая категория участников блокчейн-сети – они называются майнеры, а сама процедура проверки транзакции и добавления ее в блок таких же проверенных транзакций называется майнинг.

Майнерам для проверки транзакций и добавления их в блоки обязательно нужны две вещи: во-первых, хранить у себя полную ноду блокчейна, а во-вторых, иметь очень много вычислительных мощностей на компьютере.

Дело в том, что блокчейн создает среди майнеров очень сильную конкуренцию. Они все видят одинаковые транзакции в реестре. Все проверяют их и собирают в блоки.

Все высчитывают хэш для собранных блоков. А вознаграждение получит только один – тот, у кого будет самый красивый хэш блока. Как только появился новый блок, его автор получает свое вознаграждение, а все остальные начинают проверять новые транзакции, собирать их в блоки, высчитывать хэш и пытаться в этот раз выиграть и получить заветное вознаграждение.

Что же это за вознаграждение, которое так хотят получить майнеры? При создании нового блока в блокчейне «чеканится» новая монета этой сети. Кстати, правильнее будет называть ее не монета, а токен. Поэтому переформулируем: при формировании нового блока блокчейн генерирует новый токен и перечисляет его на адрес участника, создавшего блок. Фактически майнинг совмещает в себе три очень полезные функции: проверяет транзакции, надежно сохраняет их в блокчейне, создает новые токены (чеканит монеты).

Сколько токенов получит майнер, зависит от двух параметров:

1) от того, в каком блокчейне он проверяет транзакции;

2) от текущего уровня развития этого блокчейна.

Я думаю, что с первым параметром все понятно: если мы проверяем транзакции биткойна, то мы получаем вознаграждение в биткойнах, если эфира, то в эфире, и т. д.

А вот про уровень развития блокчейна давайте поговорим подробнее. Дело в том, что в основных блокчейнах заранее заложена так называемая бомба сложности. Это значит, что награда за блок периодически уменьшается. Например, в 2009 году, при старте сети биткойн за каждый новый блок майнер получал 50 ВТС. Такая величина награды сохранялась до 2012 года. А потом в определенный момент награда уменьшается ровно в 2 раза. С 2012 до 2016 года награда составляла 25 ВТС за блок. После уменьшения в 2016 году за каждый новый блок майнеры получают 12,5 ВТС.

Правила, по которым уменьшается награда за блок, запрограммированы внутри блокчейна и не могут быть изменены. Внутри биткойна действуют следующие правила: один блок формируется раз в 10 минут, через каждые 210 000 блоков награда уменьшается в два раза, максимально может быть сформирован 21 000 000 (21 млн) биткойнов.

Несложно подсчитать, что уменьшение награды за блок в два раза будет происходить раз в 4 года (ближайшее ожидается в 2020 году), а все биткойны будут намайнены примерно к 2140 году.

Очень часто Сатоши Накамото подвергают критике за такую бомбу сложности внутри биткойна, ведь она делает майнинг менее выгодным, а если майнеры не будут проверять транзакции и собирать их в блоки, то весь блокчейн перестанет работать. Однако, с другой стороны, уменьшение награды компенсируется ростом курса биткойна и увеличением комиссии за транзакцию.

Бесплатный фрагмент закончился.

Бесплатно
299 ₽

Начислим

+9

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
12+
Дата выхода на Литрес:
03 декабря 2018
Дата написания:
2019
Объем:
224 стр. 107 иллюстраций
ISBN:
978-5-4461-0955-5
Правообладатель:
Питер (Айлиб)
Формат скачивания:
Текст PDF
Средний рейтинг 5 на основе 1 оценок
Текст
Средний рейтинг 3 на основе 2 оценок
Текст, доступен аудиоформат
Средний рейтинг 3,6 на основе 8 оценок
По подписке
Текст, доступен аудиоформат
Средний рейтинг 5 на основе 46 оценок
По подписке
Текст PDF
Средний рейтинг 4,3 на основе 7 оценок
Текст
Средний рейтинг 5 на основе 5 оценок
По подписке
Текст
Средний рейтинг 3,8 на основе 37 оценок
По подписке