1.2 БЛОКЧЕЙН
Курс по цифровой грамотности
Блокчейн — книжка про то, кто кому сколько дал и на что потратил, она пишется сама по себе и у каждого есть экземпляр. Или хотя бы последние пару страниц.
Представим, что вы с друзьями решили придумать собственные деньги, и хотите делать все по-честному: один раз выпустить 100 монет и поделить их на всю компанию. Создав свой блокчейн, в который будут автоматически добавляться все перемещения денег между вами, каждый из друзей будет точно знать, что новых монет никто не выдумал. Потому что все транзакции легко отследить до самой первой записи: «мы создали 100 монет».
В теории
История
Не очень понятно, кто изобрел блокчейн: за, вероятнее всего, выдуманным псевдонимом Сатоши Накамото могла скрываться и команда талантливых разработчиков, и один гений.
Зато мы знаем, зачем придумали блокчейн: Сатоши Накамото хотел создать виртуальные деньги, за которыми не следят центробанк, счетная палата, парламент и лидер государства. У него почти получилось: Сатоши придумал валюту, которую назвал «биткоин», а чтобы все, кто расплачивается биткоинами, доверяли друг другу без регуляторов, придумал систему записи транзакций, которую назвал блокчейн.

Сатоши не был первым, кто задумался о системе, построенной на доверии к математическим алгоритмам. Первые концепции цифровых денег с криптографическими методами защиты данных опубликовали в научных работах на Западе еще в конце прошлого века. Просто тогда не было интернета, чтобы сделать систему доступной для всех.
Хотите узнать больше?
Почитайте статьи русского медиапроекта CoinSpot о ранних криптовалютах: BitGold Ника Сабо, Hashcash Адама Бэка или B-money Вэя Дая.
Цепочка блоков
Блокчейн переводится с английского как «цепочка блоков». Если упростить, блокчейн работает именно так: транзакции копятся до тех пор, пока не заполнят блок, он нумеруется, шифруется и встает крайним. Новый блок содержит зашифрованный номер предыдущего блока и список последних транзакций. Получается, в каждом блоке блокчейна упомянут предыдущий. Это важно: из-за такой записи мы можем доверять тому, что транзакции произошли именно в этом порядке.

Создание блоков — майнинг — по-разному реализовано в блокчейнах. В криптовалютах майнингом занимаются группы энтузиастов с мощным оборудованием, за это они получают комиссию. По сути, это сложная математическая задача: система собирает все транзакции, которые прошли в последнее время, добавляет зашифрованное имя предыдущего блока и случайное число. Еще система говорит: «вся эта информация вместе с моим случайным числом должна превратиться в новый шифр, число в 16-ричной системе, не больше числа X». Число X зависит от количества майнеров, которые решают эту задачку: чем их больше, тем X меньше и тем строже условия для вида конечного шифра.
В декабре 2017 года биткоин стоил больше миллиона рублей. Считается, что Сатоши Накамото успел намайнить примерно 1 миллион биткоинов, большинство из которых не потратил. До 25 января 2010 года он был единственным майнером.
Мощные компьютеры майнеров ищут загаданное системой число наперегонки. Тот компьютер, который нашел подходящее число первым, создаёт новый блок и добавляет его в блокчейн. Зашифрованный номер блока, который получился в ходе решения задачи, пойдет в следующий блок. За каждый новый блок майнер получает 12,5 биткоинов комиссии.

На майнинге удалось заработать первопроходцам и до сих пор удается заработать тем, кто объединился в большие группы — майнинг-пулы. Они вместе покупают производительное оборудование и вкладываются в инфраструктуру: платят за бесперебойное электричество, обеспечивают систему вентиляции, следят за процессом.
Хотите узнать больше?
Почитайте русский перевод статьи Джордана Тувинера, создателя сайта buybitcoinworldwide.com, о крупнейших майнинг-пулах.
Криптографические хеш-функции
Вернемся к примеру вашей собственной валюты. Напомним, вы решили создать 100 монет и распределить их между друзьями. Цепочка блоков отлично подходит для того, чтобы следить, в каком порядке происходили перемещения денег между вами и какая из транзакций последняя. Но узнать, сколько именно денег осталось у каждого из друзей, не имея доступа к их кошельку, к сожалению, не получится: их имена в блокчейне будут зашифрованы. После первой записи «мы создали 100 монет» начнутся транзакции в духе:
    «c82ba9637cfaae71fc6b988f65abe2a2 передал d51ca416731c328c6bb159cc30803659 2 монеты».

    Дело в том, что в блокчейне все зашифровано: не только номера блоков, но и все держатели монет. «c82ba9637cfaae71fc6b988f65abe2a2» — это хеш, который значит «Саша», «d51ca416731c328c6bb159cc30803659» — «Маша». Хеш — это результат действия хеш-функции, она превращает информацию в уникальные комбинации символов фиксированной длины. Хеш-функция работает примерно так: слово «Саша» сначала превращается в цифровой код, потом он проходит через несколько математических операций и многократно меняет свой вид, превращаясь в строчку абракадабры. Криптографические хеш-функции — это функции, которые можно использовать для обработки важной информации и не бояться, что ее сможет расшифровать и вытащить из системы кто-то посторонний.

    Хеш-функцию называют криптографической, если:

    1. По хешу невозможно понять с помощью вычислений, что за число было зашифровано.
    2. Невозможно, зная исходное число и его хеш, узнать, существует ли другое число, которое получит такой же хеш, и вычислить его.
    3. Функция выдает уникальные хеши даже для очень похожих чисел.
    Последнее качество функции еще называют устойчивостью к коллизиям. Коллизия — это когда хеши разной информации совпадают. Например, «c82ba9637cfaae71fc6b988f65abe2a2» — хеш для «Саша», который вы уже видели, его сделала функция MD5. «72adc4fc2f53b1344fb5b56d6ed81b1f» — хеш, который MD5 сделала для «саша». Обратите внимание, насколько они разные. Функция MD5 уже неактуальна для защиты информации: с середины двухтысячных ее считают устаревшей и небезопасной.
    Хотите узнать больше?
    Почитайте пошаговый разбор хеш-функции SHA256 в русском переводе статьи Mining Bitcoin with pencil and paper на ХабраХабре.
    Хеш-функции используются на каждом шагу, с их помощью можно быстро сверить на совпадение разные кусочки информации. Например, проверить пароли: хеш пароля, который есть в системе, сверяется с хешем пароля, который вводит пользователь. Так система, не сравнивая каждый знак или вообще не зная исходный пароль, может оценить его корректность. Еще с помощью хеширования можно проверить сохранность файлов после скачивания: в пакете данных, который скачивается, передается захешированный вес всего пакета, контрольный хеш. Когда он скачается, система проверит, совпадает ли хеш от веса скачанного файла с контрольным.

    В блокчейнах хеширование — гарант доверия и основа работы всей системы. Вернёмся к задаче по майнингу биткоинов. В блокчейне биткоина для создания уникального цифрового кода (названия) блока используется хеш-функция SHA-256, ее придумали в агентстве национальной безопасности США и опубликовали в 2002 году, она может выдать 2256 разных хешей. Это очень много, больше сотни кватторгинтиллионов, число в 78 цифр длиной.

    Напомним: чтобы создать новый блок, майнеру нужно угадать случайное число, которое загадало система. Такое, чтобы хеш от этого числа вместе с уникальным цифровым кодом предыдущего блока и списком транзакций текущего соответствовал бы условию системы. Теперь, когда мы знаем о хеш-функциях и о том, как сильно отличается хеш даже очень похожей информации, сложность задачи очевидна.
    Пускай условию системы подходит десять миллиардов хешей. Вы случайно угадаете один из десяти миллиардов нужных среди ста кватторгинтиллионов возможных хешей примерно раз в дуогвинтиллион раз.
    Кому-то из сотен тысяч майнеров биткоина по всему миру везет найти это число и создать подходящий хеш примерно раз в десять минут. Майнер транслирует свой блок остальным и спрашивает: «все нормально, добавляем?». Другие майнеры пробуют подставить угаданное число, получают удовлетворяющий условиям хеш и отвечают: «ладно, кажется, все в порядке, ты честно потратил время и решил задачу, добавляем».

    Примерно так, каждые десять минут в блокчейн добавляется новый блок. В итоге добавление блока — многоступенчатый и ресурсозатратный процесс, а проверка качества решения — ответ на вопрос «правильно ли угадано число» — быстрый и однозначный. Такая концепция согласия среди майнеров, которую придумали для блокчейна биткоина, называется Proof-of-work или доказательство работы. В более современных блокчейнах используют другие методы согласия, и пока сложно сказать, насколько они эффективнее.
    Схема структуры блоков: хеш предыдущего, свой хеш и транзакции
    Доверие
    Получается, что блокчейн — зашифрованная книга обо всех транзакциях, которую группа энтузиастов за комиссию пишет по страничке за присест, и на каждой странице указывает, какая была предыдущей. Поэтому, блокчейнам хочется верить: система, в которую нельзя вбросить фальшивые деньги или нельзя обмануть, сказав, что у тебя больше денег, чем тебе на самом деле передали, — отличная система.

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

    К сожалению, это не значит, что блокчейн — идеальная система. Чтобы улучшать отдельные качества системы, например, количество транзакций внутри одного блока, блокчейн приходится разделять на два параллельных — иначе на переработку всех блоков с начала до конца придется затратить годы вычислений. Это называется «форк», «хардфорки» — ответвления блокчейна, которые работают по новым правилам и существуют самостоятельно, «софтфорки» — могут влиться обратно в основную цепочку. Блокчейн биткоина дробился уже десятки раз, какие-то ответвления поддерживались сообществом, какие-то — не приживались, их прекращали майнить.
    Хотите узнать больше?
    Самый известный форк биткоина называется BitcoinCash, посмотрите русскоязычную версию сайта об этой криптовалюте.
    С другой стороны, для того, чтобы мошенники смогли поменять что-то в блокчейне или добавить новый блок, который отличается по структуре от предыдущих, им нужно:
    1. опередить майнеров в решении криптографической задачи, что невозможно без суперкомпьютеров, а, значит, придется смухлевать;
    2. убедить больше 50% майнеров, что их поддельное решение — правильное и получить одобрение на включение блока в блокчейн.

    Первое возможно разве что в случае секретных разработок или научных открытий, а второе — только если кому-то удастся монополизировать процесс майнинга. За 9 лет существования биткоина такого не происходило, и все разветвления блокчейна биткоина хорошо известны, потому что они были одобрены сообществом.
    На практике
    Хайп
    Блокчейн — надежная система, но пока, кроме виртуальных денег, почти нигде не применяется. Главная проблема блокчейна в том, что его затратно содержать и сложно модифицировать на ходу. Даже с бесперебойным электричеством и мощным железом в тысячах майнинг-пулов по всему миру, скорость транзакций падает. Через десять лет пользоваться криптовалютой на оригинальном блокчейне биткоина конца нулевых будет неудобно: новые блоки транзакций будут добавляться слишком медленно, а создавать их будет невыгодно.

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

    Тем не менее вокруг блокчейна много шума: новые криптовалюты появляются каждый день, потому что люди пытаются заработать легкие деньги на майнинге или перепродаже. С одной стороны, это привлекает массу энтузиастов к развитию новой перспективной технологии. С другой стороны, привлеченные энтузиасты мешают развивать репутацию удачным инициативам на блокчейне, занимаясь мошенничеством, распространяя некорректную информацию и ложные обещания.
    Криптовалюты
    Количество криптовалют приближается к двум тысячам, но их правовой статус пока не определен. В некоторых странах их успели запретить окончательно, как, например, в Китае. В других — пытаются поддержать, исследовать и разрешают использовать в виде денег, как, например, биткоин в Японии, Сингапуре, Щвеции, Дании, США или Канаде. Ванкувер и Торонто — лидеры мирового криптовалютного сообщества, в этих городах уже появились банкоматы, в которых можно обменять реальные деньги на биткоины.

    Внимание к криптовалютам обеспечено скачком курса биткоина на рубеже 2016 и 2017 годов, и пока сложно выделить другую отдельную валюту, которая смогла бы добиться такого же уровня принятия. У виртуальных денег есть очевидное преимущество в виде отсутствия регуляции, которое может привлекать рискованных инвесторов, но не подойдёт для корпораций, государственных бюджетов и благотворительности: курсы слишком непредсказуемы.
    Динамика курса биткоина к доллару за последний год: цена колебалась от $ 6000 до $ 19 000
    Смарт-контракты

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

    1. участники анонимны;
    2. информация безопасно хранится на множестве устройств, ее невозможно поменять задним числом;
    3. корректность исполненного контракта легко проверить всем, кто имеет доступ к блокчейну.
      В будущем система смарт-контрактов способна упразднить нотариусов и юристов, специализирующихся на договорных отношениях. Более того, в контрактах на блокчейне будет меньше ошибок из-за отсутствия человеческого фактора.
      Повсеместному распространению блокчейнов, поддерживающих смарт-контракты, препятствует несовершенство текущей технологии, в первую очередь ограниченная скорость операций. Один из способов измерить пропускную способность системы — вычислить максимально возможное число транзакций в секунду (TPS, transactions per second). У блокчейна биткоина теоретический TPS не превышает 7, у более совершенных блокчейнов, спроектированных специально для выполнения смарт-контрактов — 15. Для сравнения, TPS любой системы кредитных карт больше 24 000.
      Знаковый пример реального применения смарт-контрактов для обработки 345 миллионов однородных операций в финансовом секторе произошел в компании DTCC, прямо на Уолл-стрит. Специалисты компании заключили партнерство с IBM и двумя блокчейн-стартапами: Axoni и R3.
      Кейс
      DTCC с партнерами создали распределенный реестр для обработки контрактов по передаче прав на акции. Проблема в том, что информация о покупке акций через DTCC поступает трейдеру, в отдел риск-менеджмента, на биржу и еще в десяток институтов и организаций. Каждый из контрагентов должен одобрить транзакцию, появлялось много бюрократии и процесс покупки финансовых инструментов затягивался. Благодаря решению на распределенном реестре, процесс упростили и компания сэкономила деньги. Пилотная версия смарт-контрактов для пост-трейдинга в DTCC заработала в начале 2018 года.
      Ethereum и ICO
      Второй по совокупной стоимости выпущенных коинов — капитализации — криптовалютный блокчейн после биткоина — Ethereum или эфир. Ethereum более совершенный, быстрый и сложный блокчейн, он разработан как раз для выполнения смарт-контрактов. Можно сказать, что Ethereum — платформа для создания новых блокчейнов и распределенных реестров. Его уже применяли для создания контрактных систем в сфере страхования, кредитования, недвижимости, здравоохранении, оптимизации цепочек поставок. Среди прочего, Ethereum помогает бизнесам привлекать деньги на развитие с помощью создания криптовалют, предназначенных для краудфандинга конкретной компании.

      Краудфандинг — сбор средств от частных лиц через интернет для развития компании или создания конкретного продукта. Краудфандинг позволяет небольшим бизнесам развивать инновационные идеи на деньги конечных пользователей, без институциональных инвесторов — банков, фондов и крупных компаний. Ethereum добавляет в краудфандинг безопасность и прозрачность смарт-контрактов. Выпуск собственной криптовалюты, которую за деньги покупают те, кто хочет поддержать компанию, называется первичное размещение монет или ICO (Initial Coin Offering).
      Если упростить, ICO — краудфандинг через криптовалюту, коины которой имеют реальную стоимость, символическую ценность внутри бизнеса-эмитента и ограничение по количеству.
      Допустим, вы открыли пекарню и хотите попросить у жителей близлежащих домов денег, чтобы развиваться, печь больше и вкуснее. Вы могли бы пойти в банк и взять кредит или найти инвестора и взять у него денег за долю вашего бизнеса, но выбрали именно краудфандинг. Вам показалось, что найдется достаточно неравнодушных людей вокруг, которые будут заинтересованы вложить в вас небольшую сумму за какой-то символический подарок или преференцию, скажем, хлеб без очереди.

      Вы можете нанять специалиста, который напишет вам блокчейн на Ethereum и выпустить собственную криптовалюту — хлебкоины. Теперь вы можете поставить себе и заинтересованным инвесторам цель: «хлебкоины стоят по 50 рублей, всего их 20 000, если распродадим все — хорошо, если не распродадим — верну всем деньги и оставлю хлебкоины себе, забудем все как страшный сон».

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

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

      В примере с пекарней у коинов слишком символическая ценность, да и ICO обойдется вам слишком дорого и затратно по времени. Такое ICO, скорее всего, провалится и не соберет заявленных денег. Даже если вы выпустите коины, они тут же упадут в цене, поскольку люди, которые не живут рядом с вашей пекарней, в принципе не увидят ценности в ваших коинах. Инвесторы расстроятся, что зря потратили деньги, потому что их коины тут же обесценились. Словом, ICO подойдут для технологичных бизнесов, которые сами связаны с разработкой блокчейнов. В таких компаниях найдется применение внутренней криптовалюте. Ethereum тоже проводил собственное ICO, оно было успешным и принесло компании больше 18 миллионов долларов. Их коинами можно расплачиваться за использования вычислительных мощностей их блокчейна.
      Список крупнейших ICO 2017 года из отчета FabricVentures x Token Data, 2018
      Эволюция
      Блокчейн биткоина, с которого мы начали, с начала десятых называют блокчейн 1.0. В сегодняшних реалиях регулярных ICO и первых систем смарт-контрактов он кажется неповоротливым и ресурсозатратным. Ключевые пользователи блокчейна 1.0 — майнеры классических криптовалют, они следят за состоянием блокчейнов, иногда соглашаются на софтфорки, чтобы добавить в них изменения.

      С приходом Ethereum появился блокчейн 2.0, он спроектирован специально для создания смарт-контрактов, его исходный код доступен в интернете, он открыт к модификациям и привлек интерес крупных компаний: от Microsoft и SAP до ВТБ и Сбербанка. Появились специальные отделы внутри корпораций, которые занимаются разработкой распределенных реестров для смарт-контрактов на принципах блокчейн 2.0.

      Интерес к распределенным базам данных и механизмам согласия внутри сети рано или поздно приведет к появлению блокчейна 3.0. В нем будет еще легче создавать собственные системы, он станет производительнее и экономичнее. Смарт-контракты сможет создать любой пользователь интернета, не выходя из дома или пользуясь мощным смартфоном. По самым смелым прогнозам, весь интернет перейдет на блокчейн 3.0 и станет децентрализованным и прозрачным, избавив мир от серверных комнат и системных администраторов. Радикальные инновации — это результат доверия к технологии и, кажется, блокчейну стоит доверять.
      Ключевые мысли урока
      1
      Первый блокчейн придумал некто Сатоши Накамото в процессе создания своей криптовалюты, биткоина. Блокчейн биткоина работает с 2008 года, он медленный и энергозатратный, несколько раз ветвился.
      2
      Блокчейн отлично подходит для решения задач, связанных с записью и хранением последовательных однородных операций. На блокчейнах работают все криптовалюты.
      3
      Блокчейн — цепочка блоков, каждый связан хитрым шифрованием с предыдущим, новые блоки добавляют майнеры. Они получают за это комиссию, фактически, создают криптовалюту.
      4
      Чтобы добавить блок, нужно решить сложную задачу: угадать число, чтобы получился правильный шифр. Чем больше компьютеров угадывают одновременно, тем сложнее задача.
      5
      Блокчейн — безопасно и надежно, но криптовалюты и ICO — нет, это рискованные вложения, там нет сложившегося рынка и регуляторов.
      6
      Блокчейн эволюционирует, на нем уже можно заключать контракты, которые выполняются автоматически. Блокчейн-решения появляются у крупных финансовых компаний, в некоторых местах в интернете можно расплачиваться биткоином.
      Задание
      Мы подготовили тест из 6 вопросов, основанных на материалах урока по блокчейну.
      Начать
      Кто и зачем придумал блокчейн?
      Очень близко, но это не самый точный из предложенных вариантов
      Верно. Мы точно не знаем, кто, но хорошо знаем, зачем
      Дальше
      Проверить
      Узнать результат
      Выберите два варианта, в которых есть проблемы, которые решаются применением хеш-функции
      Верно, можно хешировать вес файла и передать его вместе с ним, потом сравнить с хешем веса скачанного файла
      Верно
      Нет, хеш-функция не поможет
      Нет, тут нужен отдел контроля качества
      Дальше
      Проверить
      Узнать результат
      Выберите два варианта, в которых есть проблемы, для решения которых подойдет блокчейн
      Верно
      Нет, блокчейн не подойдет
      Верно, теоретически блокчейн подойдет: все измененения в документ можно заносить в цепочку блоков, в любой момент легко проверить, какие изменения были последними
      Здесь прежде всего нужны технологии машинного обучения, о них поговорим в следующих уроках
      Дальше
      Проверить
      Узнать результат
      Кто добавляет новые блоки в блокчейн биткоина?
      Все правильно. Они получают комиссию за каждый новый блок
      Нет, блокчейн децентрализован
      Нет, на домашнем компьютере не получится. Увидите такую рекламу в интернете — не покупайтесь
      Нет, это было бы бесмысленно, блокчейн децентрализован
      Дальше
      Проверить
      Узнать результат
      В чем заключается сложность задачи по добавлению блока в блокчейн биткоина?
      Все верно
      Дальше
      Проверить
      Узнать результат
      Выберите правильное определение ICO
      Это неверное определение
      Это не совсем корректное определение
      Все верно
      Нет, это абракадабра
      Дальше
      Проверить
      Узнать результат
      Вы не совсем поняли, как работает блокчейн
      Это нормально, блокчейн — сложный механизм, в нем много тонкостей. Попробуйте перечитать урок и пройдите тест заново. Ключевые темы: хеш-фунции, майнинг биткоина, области применения биткоина и хеш-функций, ICO.
      Еще раз
      Вы знаете, что такое блокчейн, но не совсем разобрались, как он работает
      Вы дали достаточно правильных ответов, чтобы приступать к следующему уроку. Но лучше закрепить материал: важно усвоить, в каких отраслях блокчейн будет полезен, и почему блокчейнам можно доверять, а ICO — чаще всего не стоит.
      Еще раз
      Новый блок готов. Вот ваши 12,5 биткоинов
      Вы смогли разобраться в тонкостях работы блокчейна и усвоили базовые понятия. Еще вы узнали про ICO, смарт-контракты и другие области применения блокчейна. Надеемся, теперь ему проще доверять.
      Еще раз