(Продолжение. Начало см. здесь. Вторую часть см. здесь.)
1. Криптовалюта. Часть III. Что такое БлокЧейн.
Это третья часть вводной статьи про криптовалюты для тех, кто хочет узнать, что это такое и как оно всё работает.
В первой части рассматривалась природа современных денег. Было показано что криптовалюта, это как раз то, что придет на замену современным деньгам. И очень схематично рассказывается про принцип генерирования криптовалют.
Во второй части рассказывается про майнинг криптовалют и его перспективы. А также про перспективы появления банковских криптовалют и государственных криптовалют.
Первые две статьи написаны достаточно просто, чтобы их поняли люди без экономического образования. А эта статья про блокчейн написана тоже на простом языке, чтобы её поняли люди без образования программиста и математика. Чтобы было понятно людям, которые, которые не слишком хорошо разбираются в компьютерах, хотя каждый день пользуются компьютером.
2. Технология блокчейн
Слово "БлокЧейн" (BlockChain) в переводе с английского означает "Цепочка Блоков". То есть, это длинная цепочка цифр, которая делится на какие-то блоки. Но не любая последовательность цифр, которую мы можем формально поделить на блоки, является блокчейном. А, точнее, не любая такая цепочка связана с технологией блокчейн. Эта цепочка цифр должна быть создана определенным способом, по определенной технологии.
Технология блокчейн появилась много десятилетий назад, задолго до появления первой криптовалюты. Поэтому мы сначала забудем про всякие криптовалюты и просто посмотрим на то, что из себя представляет эта технология и зачем она нужна.
Сначала посмотрим пару примеров никак не связанных с криптовалютами, чтобы понять технологию блокчейн. А уже потом посмотрим, как это применяется для создания криптовалют.
3. Многопользовательская компьютерная программа
Допустим, в офисе какой-то фирмы менеджеры работают с какой-то сетевой программой, типа "1С:Предприятие". То есть менеджеры фирмы могут заходить в эту программу со своих компьютеров под своими логинами и паролями. В этой программе они, например, могут выписывать для своих покупателей накладные и счет-фактуры для отгрузки товара со склада фирмы.
Допустим, менеджер А.Б. решил незаконно подзаработать денег, используя своё служебное положение. В обеденный перерыв, когда никто не работает параллельно с ним, он выписывает накладную и счет-фактуру на отгрузку товара со склада фирме своего приятеля В.Г. Он отправляет выписанные и проведенные документы на склад с липовыми подписями, сделанными левой рукой. Складские работники отгружают товар для В.Г.
После чего, А.Б. уничтожает в базе данных компьютерной программы эти выписанные документы. После окончания обеденного перерыва другие менеджеры возвращаются в офис и в процессе работы они выписывают какие-то новые свои документы с номерами тех документов, которые уничтожил А.Б.
3.1. Защита данных истории действий
Прочитав всё это, многие скажут, что такой наивный способ воровства не пройдет. Через какое-то время обнаружится расхождение данных по запасам товара на складе и в компьютерной программе. Затем при проверке обнаружится "левая" накладная на складе как раз на количество недостачи. На этой накладной будет стоять дата компьютерной программы (и, дополнительно, реальная дата, поставленная складским работником). А во всех таких многопользовательских компьютерных программах всегда встроен мониторинг пользователей.
Можно будет посмотреть мониторинг за тот день и увидеть, что в тот день делал в программе каждый из менеджеров. Так обнаружится, что А.Б. сначала создал эту "левую" накладную, а потом её уничтожил.
Но если А.Б. достаточно хорошо разбирается в программировании, то он может влезть в базу данных этой программы напрямую в сам файл мониторинга и подредактировать его. Он сотрёт там самую последнюю запись о том, что он создавал накладную и уничтожил её.
Чтобы такие "умные" ребята не делали таких вещей, файл мониторинга обычно шифруется. Этот файл выглядит, как длинная цепочка цифровой абракадабры. Не зная ключа шифрования, невозможно понять, где начинается запись о том, что происходило в компьютерной программе во время обеденного перерыва.
3.2. Недостатки простой защиты данных истории действий
Но и это, порой, не панацея от злоумышленников. Менеджер А.Б. может отрезать от окончания этой цепочки зашифрованного мониторинга наугад большой кусок данных. Возможно, в эти данные попадут не только данные за последний день, но и за несколько последних дней. Может быть компьютерная программа после такого "кастрирования" цепочки, вообще, не сможет работать, но ему-то уже плевать на всё это.
В конце концов, А.Б. может просто удалить с диска сервера фирмы, вообще, весь файл мониторинга, то есть всю зашифрованную цепочку данных.
Итак, цепочка зашифрованных данных в такой программе, на самом деле, плохо защищена от потери информации.
4. Сайты на хостинге
Во втором примере немного пофантазируем. Допустим, депутат Государственной Думы РФ мадам Яровая решила, что Роскомнадзор работает крайне отвратительно. Роскомнадзор, по её мнению, плохо блокирует те сайты и блоги, которые в определенное время суток или в определенные дни недели показывают запрещенный контент, а в остальное время мимикрируют в добропорядочные законопослушные сайты.
Такие сайты очень трудно поймать за руку. Посетители таких сайтов через сарафанное радио или через зарубежные соцсети знают, что там, например, по вторникам с 3 часов ночи до 6 часов утра можно бесплатно скачивать все кинофильмы Никиты Михалкова и кинокомпании Marvel. А в другое время это безобидный сайт по разведению цитрусовых в квартире.
И вот Государственная Дума принимает новый закон Яровой, по которому все российские хостеры обязаны мониторить все сайты на своих хостингах и шифрованные данные мониторинга записывать в цепочку блокчейн. При этом ключ просмотра этих данных должен быть публичным. Чтобы любой судья мог посмотреть на своем компьютере, что было в такой-то день и такой-то час на сайте обвиняемого.
Сейчас, при рассмотрении таких дел в суде, обвиняемый всегда может сказать, что представленные обвинением скриншоты его сайта, это фотошоп на почве личной неприязни или вымогательства денег у бедных веб-мастеров. Лог-файлы на хостинге тоже мало что говорят судье. Стороне обвинения приходится искать свидетелей, которые подтвердили бы, что они в какой-то день и час смотрели на сайте что-то незаконное или читали запрещенные материалы на блоге. Их IP-адреса должны присутствовать в лог-файлах хостинга в тот день и в тот час.
В общем, доказывать трудно. А вот с технологией блокчейн нет проблем. Судья посмотрит сам, что из себя представлял блог обвиняемого в любое время в прошлом.
4.1. Блокчейн для контента на сайтах
Что шифруется в такой цепочке данных?
Понятно, что там нет необходимости шифровать все действия вебмастеров и блогеров. Например, блогер может по десять раз переписывать заново один абзац своей статьи или исправлять орфографические ошибки в статье перед публикацией. Нужно записывать только тот контент, который был сохранен и опубликован для посетителей сайта, а также надо записывать время публикации.
Как делается шифрование в блокчейне?
Шифрование делается с помощью того кода, который уже был получен ранее в цепочке блокчейн.
Например, блогер опубликовал статью, и эта статья зашифровалась вместе с данными о времени публикации. На следующий день блогер пишет новую статью. Алгоритм шифрования таков, что в ключ шифрования для новой статьи включается полученный вчера шифрованный код предыдущей статьи. То есть новый шифр зависит от предыдущей статьи блогера. Если предыдущая статья была бы другой, то и шифр новой статьи был бы другим.
Это очень мощное средство, которое позволяет сразу же обнаружить, что в какое-то звено цепочки блокчейна было внесено несанкционированное изменение. Каждый следующий блок звена этой цепочки существенно зависит от предыдущего блока. Если что-то изменить в блоке, который находится в середине цепочки, то будет невозможно расшифровать все те блоки, которые были записаны в блокчейн позже этого блока.
А если хакеры не будут ничего менять в середине цепочки, а просто уничтожат всю цепочку?
Для того, чтобы такого не было, нужно создавать общую единую цепочку для всех сайтов России и хранить её одновременно на всех российских хостингах.
В России миллионы сайтов и тысячи хостингов. Запрашивать такую цепочку данных у каждого вебмастера или у каждого хостера будет крайне затруднительно. Гораздо проще, если есть одна общая цепочка и её копии находятся на каждом хостинге. Скачиваем такую цепочку себе в компьютер с любого первого попавшегося хостинга и потом смотрим, как во времени менялись все сайты Рунета.
Уничтожить все копии такой цепочки на всех хостингах одновременно будет крайне затруднительно. А уничтожать их (или портить) по одиночке не имеет смысла. Как только программное обеспечение хостинга обнаруживает, что цепочка повреждена или стёрта, так оно тут же скачивает себе копию неповрежденной цепочки с других хостингов. Пока всё это происходит, в цепочку на этих других хостингах идет запись новых блоков, которые создают сайты с хостинга, где цепочку уничтожили (или повредили). Так что нет никакого смысла уничтожать данные на одном отдельно взятом хостинге.
5. Награда за создание блокчейна
Давайте по второму примеру еще немного пофантазируем. Допустим, мы хотим оценить, какой из сайтов создает больше контента, а какой меньше. Сделать такую оценку очень просто. Какой сайт создал в блокчейне больше цифр, тот и больше создал у себя контента.
Можно ввести какую-нибудь систему баллов. Например, тому, кто создал в блокчейне один миллиард цифр, тому начислим один балл. За 10 миллиардов цифр дадим 10 баллов. А за миллион цифр дается 0.001 балла.
В реальном мире такая система баллов бессмысленная, так как сайты часто воруют друг у друга контент. Кроме того, есть специальное программное обеспечение, которое генерирует в больших масштабах бессмысленный текстовый контент. Но мы сейчас просто фантазируем.
Вот эти данные, у кого сколько баллов, можно тоже записывать в блокчейн. У каждого сайта в такой системе есть какой-то свой индивидуальный номер. И в блокчейне с некоторой периодичностью переписываются баллы, которые соответствуют тому или иному сайту. Например, после каждой очередной публикации нового контента, записывается не только шифрованный контент в блокчейн, но и новое количество баллов у данного сайта.
6. Обмен баллами
Можно каждому сайту сделать специальный кошелек, который будет показывать количество баллов этого сайта в блокчейне. Если в блокчейне меняется запись о количестве баллов у какого-то сайта, то эта информация тут же меняется и в кошельке баллов. С помощью таких кошельков можно создать систему передачи баллов от одного сайта к другому.
То есть вебмастер одного сайта может часть своих баллов (или все свои баллы) подарить вебмастеру другого сайта. При этом в одном кошельке число баллов уменьшится на заданное количество, а в другом кошельке увеличится на это же количество. И информацию о таких переводах баллов (транзакциях) можно тоже записывать в блокчейн.
Разумеется, вебмастер может делиться своими баллами с другими вебмастерами не бесплатно, а за какие-нибудь товары или за деньги. (Сейчас мы не рассматриваем вопрос, а будет ли реальная потребность в этом. По данному вопросу см. первую статью.) Для конвертации баллов в деньги и обратно, можно даже создать специальные биржи, на которых установится какой-то курс баллов в рублях и в других валютах.
Так как все изменения, которые происходят в кошельках, тоже будут записываться в шифрованном виде в блокчейн, то можно будет в таком блокчейне публично просматривать не только, историю того, что происходило с сайтом, но и как сайт зарабатывал баллы и как эти баллы тратились, кому и сколько баллов уходило.
7. Проблема инфляции баллов
Недостатком такой системы баллов является то, что количество баллов у всех вебмастеров будет бесконечно расти. Это приведет к инфляции баллов.
Эта ситуация будет напоминать ситуацию в древнем мире, когда у кочевых народов деньгами служил скот. Когда кочевники развели огромные стада скота, то скот обесценился. За одну овцу невозможно было купить чего-нибудь стоящего. А главное, овцы стали стоить меньше их себестоимости. То есть затраты на выращивание одной овцы стали больше, чем можно было получить за эту овцу. В результате разводить овец стало невыгодно.
Если наращивание баллов ничем не ограничить, то количество баллов на бирже баллов станет очень много и баллы упадут в цене. Это приведет к тому, что сайты, которые мало производят контента (мало увеличивают длину блокчейна), ничего не смогут купить на своё маленькое количество баллов.
Значит, количество баллов должно быть ограничено. Например, пусть все вебмастера могут на своем блокчейне заработать все вместе только 100 миллионов баллов. После того, как будет заработано такое количество баллов, баллы перестанут начисляться.
Но это тоже плохое решение. Да, у таких баллов не будет инфляции. Они даже могут дорожать, после того, как будет заработан последний бал. Но после того, как будет заработан последний балл, на сайтах резко уменьшится скорость появления нового контента. Ведь многие вебмастера размещали на своих сайтах новый контент только лишь для того, чтобы заработать баллы и потом поменять их на деньги.
Ценность публикуемого контента измерялась количеством заработанных за это баллов и ценой балла. Если баллы невозможно заработать, то никто не захочет публиковать контент в тех масштабах, в которых это было раньше.
8. Математические модели с усложнением
Можно придумать такие математические модели зарабатывания баллов, которые, с одной стороны, не ведут к инфляции (то есть имеют ограниченное общее число баллов), а, с другой стороны, добывание этих баллов никогда не прекращается из-за увеличения сложности такого добывания.
Например, алгоритм начисления баллов может быть таким. Допустим, всего можно добыть только 100 миллионов баллов. Сначала один балл дают за один миллиард цифр, записанных в блокчейн за размещенный контент на сайте.
Когда все вебмастера вместе взятые заработают половину всех баллов, то есть 50 миллионов, правила меняются. Теперь один балл дают не за один миллиард цифр, а за два миллиарда цифр.
И так будет продолжаться, пока все вебмастера не заработают ещё четверть всех баллов, то есть ещё 25 миллионов баллов. Итого, они все вместе заработают 75 миллионов баллов. После того, как уже заработано 75 миллионов баллов, правила снова меняются. Теперь один балл начинают давать уже не за 2, а за 4 миллиарда цифр добавленных в блокчейн за контент.
После того, как вебмастера заработают еще одну восьмую всех баллов, то есть ещё 12.5 миллиона баллов, один балл начнут давать за 8 миллиардов цифр.
И т.д. Это очень упрощенная математическая схема со скачкообразным усложнением добычи баллов. Но можно придумать более красивый математический алгоритм, где это усложнение идет не скачками, а непрерывно. Будет получаться, что каждый следующий балл добыть чуть сложнее предыдущего. Каждую следующую тысячную долю балла добыть чуть-чуть сложнее (практически неощутимо), чем предыдущую тысячную долю.
Такая добыча баллов никогда не прекратится. Все 100 миллионов баллов будет заработано за бесконечное время. Любой вебмастер, который только что создал свой сайт, тут же подключается к зарабатыванию баллов.
9. Реально ли это
Вот эта схема с баллами за контент, на самом деле, вполне рабочая схема создания криптовалюты. Но только не для сайтов, конечно. Для сайтов сложно сделать контроль качества контента. Выше уже говорилось, что что вебмастера часто копируют контент друг друга или могут использовать генераторы бессмысленных текстов. А вот где-нибудь на форумах, где есть модераторы, реализовать эту схему вполне возможно.
Для этого будет необходимо, чтобы копии блокчейна хранились на компьютере всех участников форума. Технически, конечно, в реальности это может и не получиться, так как у всех людей разные по конфигурации компьютеры. В том числе, у многих людей могут быть компьютеры с очень слабой конфигурацией.
Было бы странно, что человек со слабым компьютером не мог стать участником большого старого форума с очень длинным блокчейном. Было бы странным, чтобы для того, чтобы стать участником какого-то форума, нужно было бы доводить свой слабый компьютер до уровня форум-фермы.
Но мы сейчас рассматриваем только принципиальную возможность создания на форуме своих внутренних денег, которые работают, как криптовалюты. Такие же внутренние деньги, работающие по принципу криптовалют, можно создавать и в социальных сетях и на сайтах, подобных сайту Ответы на Mail.Ru. Только в таких местах модерация контента происходит хуже, чем на тематических форумах. Но зато, там всегда есть то, что можно менять на баллы. То есть баллы там быстрее станут выполнять функцию денег.
10. Что делают майнеры криптовалют
Чем всё это отличается от реальных криптовалют и от блокчейна реальных криптовалют?
Отличается только одной лишней деталью. Эта лишняя деталь - создание контента и шифрование созданного на сайте контента в блокчейне. Уберите из блокчейна зашифрованный контент, оставьте только шифрование переводов баллов из одних кошельков в другие и получится чисто настоящая криптовалюта.
В предыдущей статье говорилось, что процесс майнинга состоит в том, чтобы найти новый номер "купюры" криптовалюты по некоторому математическому алгоритму. Но там не объяснялось, что это за такой алгоритм. Там только говорилось, что новый найденный номер электронной "купюры" криптовалюты должен обладать некоторыми математическими свойствами.
Теперь можно уже немного конкретизировать, в чем же состоит процесс майнинга криптовалюты. Майнеры криптовалют занимаются транзакциями, то есть переводят криптовалюты из одних кошельков в другие. В систему какой-нибудь конкретной криптовалюты, например, биткойна, постоянно поступают заявки на перевод биткойнов и сатоши из одного кошелька в другой. Люди что-то постоянно оплачивают биткойнами и сатоши.
Майнерам нужно в одном кошельке изменить запись о количестве содержащихся там биткойнов и сатоши, а именно уменьшить количество этой криптовалюты в кошельке на ту сумму, которая переводится (и плюс оплата самой транзакции). А в другом кошельке увеличить количество криптовалюты на ту сумму, которая переводится. Затем нужно ещё оплату за транзакцию перевести владельцу системы.
Вот эти все действия майнеров шифруются по схеме, описанной выше, то есть с использованием предыдущих данных блокчейна, и записываются в конец блокчейна в виде нового блока. Усложнение такой работы происходит из-за того, что в алгоритме шифрования участвует всё больше и больше предыдущих блоков.
Работа майнеров по переписыванию содержимого кошельков распределяется среди всех майнеров пропорционально их вычислительным мощностям. У кого больше мощности, тот и получает большую часть этой работы. Именно поэтому в процессе майнинга используются видеокарты. Исторически так сложилось, что видеокарты гораздо лучше, чем процессоры, приспособлены для распараллеливания вычислительных процессов.
Понятно, что кто сделал больше работы, тот и запишет в блокчейн больше шифрованной цифровой информации. Отдельные блоки этой информации и являются теми самыми номерами электронных "купюр" криптовалюты. Таким образом, шифрованные записи процесса транзакций создают новые электронные "купюры" криптовалюты, а сама последовательность цифр это и есть номер "купюры" (или "монеты" из которых состоит "купюра").
У кого больше вычислительных мощностей, тот больше проведет работы по транзакциям, больше запишет своей шифрованной информации в блокчейн и в его кошелек больше запишется этой шифрованной информации, то есть больше запишется криптовалюты. Криптовалюта, это блок цифр из блокчейна. В блокчейн запишется информация, в чей кошелек поступила эта новая сгенерированная криптовалюта.
Теперь понятно, почему нельзя предсказать номер какой-нибудь будущей "купюры" криптовалюты. Никто не знает, какие в будущем будут транзакции. Заранее неизвестно, кто кому сколько будет переводить криптовалюты, в какое время, и в какой последовательности будут в будущем идти эти транзакции. Поэтому номер новой "купюры" непредсказуемый. Поэтому принципиально невозможно "разгадать" алгоритм и сгенерировать себе огромное количество криптовалюты.
Как люди зарабатывают на криптовалюте и где её берут.