Что такое блокчейн проекты
Объяснение блокчейна для веб-разработчиков
Предисловие переводчика
Предлагаю читателям Хабрахабра перевод статьи «The Blockchain Explained to Web Developers, Part 1: The Theory» за авторством Francois Zaninotto. Эту статью я нашел в блоге компании Marmelab. Статья представляет собой отличное введение в технологию блокчейн «с нуля», но может оказаться интересной и для тех, кто уже «в теме». Она касается не только того, как работает блокчейн, но и перспектив его развития, а также с чего начать, если вы хотите создать свой проект, использующий блокчейн.
Объяснение блокчейна для веб-разработчиков, Часть первая: Теория
Блокчейн – это новая популярная технология. Даже если вы не слышали о ней, вы, вероятнее всего, знаете о Bitcoin. Блокчейн — это одна из фундаментальных технологий на которых основан Bitcoin. Эксперты говорят, что блокчейн вызовет революцию схожую с той, которую некогда вызвал Интернет. Но что это на самом деле и как его можно использовать для создания приложений? Эта статья является первой в серии из трех, рассказывающей о феномене Блокчейна. Мы обсудим теорию, покажем фактический код и поделимся своим опытом, основанным на реальном проекте.
Для начала попытаемся понять что из себя представляет Блокчейн.
Что такое Блокчейн, Часть первая
Блокчейн – это журнал с фактами, реплицируемый на несколько компьютеров, объединенных в сеть равноправных узлов (P2P). Фактами может быть что угодно, от денежных операций и до подписания контента. Члены сети — анонимные лица, называемые узлами. Все коммуникации внутри сети используют криптографию, чтобы надежно идентифицировать отправителя и получателя. Когда узел хочет добавить факт в журнал, в сети формируется консенсус, чтобы определить, где этот факт должен появиться в журнале; этот консенсус называется блоком.
Я не знаю как у вас, но у меня после чтения этих определений все еще оставались проблемы с пониманием блокчейна. Давайте заглянем немного глубже.
Упорядочивание фактов
Децентрализованные сети с равноправными узлами не новы. Napster и BitTorrent — это P2P сети. Просто вместо обмена фильмами, участники сети блокчейна обмениваются фактами. Так в чем же реальная особенность блокчейна?
P2P-сетям, как и прочим распределенным системам, приходится решать очень сложную проблему информатики: разрешение конфликтов, или согласование. Реляционные базы данных предлагают ссылочную целостность, но такой особенности нет в распределенной системе. Если два несовместимых факта прибывают в одно и тоже время, система должна иметь правила для определения того, какой факт считать правильным.
Возьмем, к примеру, проблему двойного расходования: у Алисы есть 10$ и она отсылает их дважды Бобу и Чарли. Кто будет иметь 10$ в итоге? Для того чтобы ответить на этот вопрос, лучший способ это упорядочить факты. Если два несовместимых факта появятся в сети, то победит тот, который будет первый записан.
В P2P сетях, два факта отправленные примерно в одно время могут прибыть в разном порядке в удаленные узлы. Тогда как всей сети согласовать какой же факт пришел первым? Чтобы гарантировать целостность в P2P сети, вам нужен способ согласования порядка фактов. Вам нужна система консенсуса.
Алгоритмы консенсуса для распределенных систем это очень активное поле для исследований. Возможно, вы слышали о алгоритмах Paxos или Raft. Блокчейн реализует другой алгоритм, консенсус, основанный на доказательстве выполнения работы (proof-of-work), использующий блоки.
Блоки
Блоки – это хитрый трюк, чтобы упорядочить факты в сети с недоверенными узлами. Идея проста: факты группируются в блоки, и есть только одна цепочка блоков, реплицируемая по всей сети. Каждый блок ссылается на предыдущий. То есть, если факт F находится в блоке 21, и факт E в блоке 22, то факт E рассматривается всей сетью как следующий за фактом F. Перед добавлением к блоку, факты находятся на рассмотрении, т.е. не подтверждены.
Майнинг
Некоторые узлы в цепочке создают новые локальные блоки с неподтвержденными фактами. Они соревнуются, чтобы узнать, станет ли их локальный блок следующим блоком в цепи для всей сети, путем броска игральных костей. Если узел выбрасывает две шестерки, то он получает возможность опубликовать его локальный блок, и все факты в этом блоке становятся подтвержденными. Этот блок посылается всем узлам в сети. Все узлы проверяют, что блок правильный, добавляют его к их копии цепи и пытаются построить новый блок с новыми неподтвержденными фактами.
Но на самом деле узлы не просто бросают пару игральных костей. Задача, которую решают майнеры в блокчейне подразумевает бросок огромного количества игральных костей. По замыслу, обнаружение случайного ключа для проверки блока маловероятно. Это предотвращает мошенничество и делает сеть безопасной (до тех пор, пока злоумышленник не имеет контроль более чем над половиной узлов в сети). Как следствие, новые блоки будут публиковаться в цепь через фиксированный интервал времени. В Bitcoin блоки публикуются, в среднем, каждые 10 минут.
В Bitcoin, задача представляет из себя двойной SHA-256 хэш строки из непроверенных фактов, идентификатора предыдущего блока и случайной строки. Узел выигрывает, если его хэш содержит как минимум n ведущих нулей.
// проигрышный хэш для Bitcoin
787308540121f4afd2ff5179898934291105772495275df35f00cc5e44db42dd
// выигрышный хэш для Bitcoin, если n=10
00000000009f766c17c736169f79cb0c65dd6e07244e9468bc60cde9538b551e
Число n время от времени корректируется, чтобы сохранить длительность вычисления блока, несмотря на изменение количества узлов. Это число называется сложностью. Другие реализации блокчейна используют специальные методы хэширования, которые препятствуют использованию графических процессоров для вычислений (например, требуют передачи больших объемов памяти).
Процесс поиска блоков называется майнингом. Все дело в том, что так же как и добыча золота (прим. перев. Mining — добыча (англ.)), майнинг блоков приносит экономическое вознаграждение — некоторую форму денег. Вот почему людей, которые содержат узлы в блокчейне, называют майнерами.
Примечание: По умолчанию, узел не майнит – он просто получает блоки, которые майнят другие узлы. Это добровольный процесс — превращение узла в узел майнер.
Деньги и криптовалюты
Каждую секунду, каждый майнер тестирует тысячи случайных строк, чтобы сформировать новый блок. То есть работа майнера в блокчейне требует огромное количество компьютерных ресурсов (памяти и CPU). Вот почему вы должны платить, чтобы записывать факты в блокчейн. С другой стороны, чтение фактов бесплатно: вам достаточно запустить собственный узел и вы будете получать полную историю фактов созданную другими узлами. Итак, подведем итог:
Майнеры получают вознаграждение за поддержание работы и безопасности сети. Каждый раз, когда они успешно формируют блок, они получают фиксированное количество криптовалюты. В Bitcoin вознаграждение – 25 BTC за блок, в Ethereum– 5 ETH за блок. Таким образом, блокчейн сам генерирует свои собственные деньги.
Криптовалюты быстро стали конвертируемы в реальные деньги. Их номинальная стоимость определяется только спросом и предложением, поэтому криптовалюта — это объект спекуляции. К моменту написания статьи, процесс майнинга bitcoin все еще требовал меньше расходов на энергию и оборудование, чем деньги которые вы можете получить, продавая монеты, полученные за него. Вот почему люди добавляют новых майнеров каждый день, надеясь превратить электричество в деньги. Однако колебания в стоимости BTC делают майнинг все менее и менее выгодным.
Контракты
До сих пор, мы в основном говорили о блокчейне как о хранилище фактов, но он также может исполнять программы. Некоторые блокчейны позволяют каждому факту содержать мини программу. Такие программы реплицируются вместе с фактом, и каждый узел выполняет их, получая факт. В Bitcoin это используется для совершения транзакций с условиями, например: Боб получит 100 BTC от Алисы только если сегодня 29 февраля.
Другие блокчейны разрешают более сложные контракты. Например, в Ethereum каждый контракт несет в себе мини-базу данных и предоставляет методы для изменения ее данных. Поскольку контракты реплицируются по всем узлам, то и их базы данных тоже. Каждый раз, когда пользователь вызывает метод из контракта и, соответственно, изменяет данные, эта команда реплицируется и повторяется всей сетью. Это позволяет создать распределенный консенсус для выполнения обещаний.
Эта идея сопряжения блокчейна с реальным миром при помощи заранее запрограммированных условий и их передачи всем узлам называется умный контракт. Контракт — это обещание, которое стороны подписывают, чтобы закрепить его юридически. Умный контракт – это то же самое, только закрепление происходит «технически», а не «юридически». Благодаря этому отпадает необходимость в нотариусе или любом другом полномочном лице, признаваемом обеими сторонами.
Представьте, что вы хотите сдать ваш дом на неделю за 1000$ c 50%-ой предоплатой. Вы и арендующий подписываете контракт, вероятнее всего, написанный юристом. Вам также нужен банк для получения платежа. В начале недели вы просите о депозите в 5000$; арендующий предоставляет вам чек на него. В конце недели он отказывается заплатить оставшиеся 50%. Вы также узнаете, что он сломал окно, и чек с депозитом ведет на пустой счет. Теперь вам понадобится адвокат, чтобы передать ваш договор на аренду в суд.
Умные контракты в блокчейне позволяют вам обойтись без банка, юриста, адвоката и суда. Просто напишите программу, которая определяет, сколько денег должно быть передано в случае определенных условий:
Добавьте этот умный контракт в блокчейн и больше никаких проблем. Ко времени указанному в контракте произойдет передача денег и, если владелец сможет представить доказательства механических повреждений, он автоматически получит 5000$ (и нет никакой нужды в депозите).
Вероятно, вы задаетесь вопросом, как получить доказательства механических повреждений. Здесь в дело вступает «интернет вещей» (IoT). Для взаимодействия с реальным миром блокчейну необходимы датчики и приводы. Блокчейн революция невозможна без IoT революции.
Такие приложения, опирающиеся на умные контракты, называются децентрализованными приложениями или DApps.
Умные контракты легко расширяются на умную собственность и многие другие умные вещи. Запомнить надо только одно: «умные» означает «нет посредников» или «исполняется технически». Блокчейн – это новый способ ведения бизнеса без посредников – также как продажа музыки в Интернете.
Что такое блокчейн. Часть вторая
Как мне кажется, лучший способ понять блокчейн – это взглянуть на него с разных сторон.
Что он делает? Блокчейн позволяет безопасно распространять и/или обрабатывать данные между несколькими лицами через недоверенную сеть. Данными может быть что угодно, но наиболее интересным вариантом данных является возможность передачи информации, которая требует наличия третьей доверенной стороны. Примерами такой информации являются деньги (требуют участия банка), права на собственность (требуют участия нотариуса), договор на заем и т.д. В сущности, блокчейн устраняет необходимость в участии третьего доверенного лица.
Как он работает? С технической точки зрения, блокчейн является новшеством, которое опирается на три понятия: P2P сети, асимметричная криптография и распределенный консенсус, основанный на решении математической задачи. Ни одна из этих идей не является новой сама по себе. Если вы не разбираетесь во всех, не беспокойтесь: немногие люди обладают необходимыми знаниями, чтобы разработать блокчейн (что является проблемой). Но отсутствие полного понимания блокчейна не мешает вам использовать его, так же как вы можете создавать веб-приложения, не зная о медленном старте TCP или центрах сертификации.
На что он похож? Блокчейн можно рассматривать как (слабо)синхронизированную базу данных реплицируемую столько же раз, сколько узлов в сети, или как суперкомпьютер, образованный комплексом всех CPU/GPU входящих в него узлов. Вы можете использовать этот суперкомпьютер для хранения и обработки данных, т.е. также как вы можете использовать удаленный API. Отличие только в том, что вам не нужно создавать бэкэнд, и вы можете быть уверены, что данные надежно защищены и обрабатываются в сети должным образом.
Практические следствия
Факты, хранящиеся в блокчейне, не могут быть утеряны. Они остаются там навсегда, реплицируясь на каждый узел. Даже более того, блокчейн не просто хранит конечное состояние, он хранит и все предыдущие состояния. Поэтому каждый может проверить правильность конечного состояния, пересчитывая факты с самого начала.
Фактам в блокчейне мы можем доверять, т.к. они технически подтверждаются консенсусом. Даже если в сети находятся злоумышленники, вы все равно можете доверять ее суждению в целом.
Помещение данных в блокчейн достаточно медленная операция, поскольку она требует достижения распределенного консенсуса.
Подсказка: Если у вас есть 20 свободных минут для более глубокого понимания, посмотрите это прекрасное вводное видео о Bitcoin, которое также объясняет, как работает блокчейн.
Почему это важно
«Блокчейн это самая потрясающая технология из тех, которые я когда либо видел.» Salim Ismail
«Самая интересная интеллектуальная разработка в Интернете за последние 5 лет.» Julian Assange
«Я думаю тот факт, что благодаря Bitcoin вселенной, алгоритм замещает функции [государства] … это действительно очень круто.» Al Gore
Эти умные люди увидели огромный потенциал в блокчейне. Потенциально блокчейн может заменить всех посредников, которые необходимы для установления доверительных связей. Давайте взглянем на несколько приложений которые построены на блокчейне и реализуют идеи отказа от посредника.
Получат ли выгоду пользователи, которым больше не понадобятся посредники для обмена товарами и услугами? Пока нельзя сказать точно. Интернет и ранее ориентировался на отсутствие посредников. Тем не менее, Google удалось построить свой рынок, будучи посредником. Вот почему крайне важно инвестировать в блокчейн быстро, потому что победители и проигравшие следующего десятилетия определяются прямо сейчас.
Вы не захотите создавать свой блокчейн
Технологии, на которых строится блокчейн, используют передовую криптографию, пользовательские сетевые протоколы и оптимизацию производительности. Все это слишком сложно, чтобы разрабатывать это каждый раз, когда проекту требуется блокчейн. К счастью, помимо Bitcoin, есть еще несколько реализаций блокчейна с открытым кодом. Вот самые передовые:
Цифры
Насколько велик блокчейн сегодня? Взглянем на некоторые цифры.
Заключение
Технология блокчейна одновременно интригующая и захватывающая. Станет ли она революцией, которую предсказывают компьютерные гуру? Или это просто экономический пузырь опирающийся на непрактичные идеи? После изучения большого количества информации на эту тему мы все еще не можем сформировать окончательное мнение.
Когда мы сталкиваемся с неопределенностью, мы знаем отличный способ с ней разобраться: пробовать. Это как раз то, что мы решили делать. Читайте следующую статью в серии, чтобы увидеть, что мы узнали, создавая приложение работающее на блокчейне.
Технология блокчейн: что надо знать в 11 карточках
Что такое блокчейн простыми словами
Блокчейн — это распределенная база данных, которая содержит информацию обо всех транзакциях, проведенных участниками системы. Информация хранится в виде цепочки блоков. В каждом из них записано определенное число транзакций.
Что такое распределенная база данных? Слово «распределенная» означает: нет никакой централизованной организации, которая бы проверяла этот процесс.
Об эксперте: Артем Генкин, доктор экономических наук, профессор, один из ключевых спикеров онлайн-встреч с авторами онлайн-университета Skillbox и издательской группы «Альпина» –– «Новый мир, новый человек».
По мнению Банка Англии, блокчейн — «технология, позволяющая людям, которые не знают друг друга, доверенно и совместно использовать запись событий». Невозможно скрытно подделать данные внутри этой системы, поэтому она признана коррупционно-стойкой.
Аналогия с блокчейном — ожерелье. Каждая бусина –– это «блок» или запись действия. Это ожерелье — или «chain» (цепь) — не может быть уничтожено или разрушено. Таким образом, блокчейн — это нерушимая цифровая запись действий. Надежность этой системы позволила использовать ее для повышения эффективности денежных операций и обмена информацией среди частных лиц, корпораций и даже госсектора.
История понятия «блокчейн»
Понятие «блокчейн» не имеет национального происхождения, у него сетевое «гражданство». История термина началась в 2008 году, когда аноним или группа лиц, скрывшихся под псевдонимом Сатоши Накамото, опубликовали статью, ставшую манифестом этой инновационной технологии. В статье описывались ее сущностные характеристики и возможности создания децентрализованной системы денежных расчетов.
За последние годы было много версий того, кто мог быть автором этого манифеста. Убедительны некоторые доказательства в пользу его русскоязычного происхождения. Первый блок был сгенерирован в 2009 году, а на сегодня только криптоинструментов на базе разных модификаций блокчейна в мире циркулирует свыше 2 тыс. видов.
Как блокчейн связан с понятием биткоин?
Биткоин — исторически первое и наиболее известное применение блокчейн-технологии. Транзакции в нем –– это переводы средств между кошельками пользователей. Каждому участнику доступна информация о любой из транзакций, когда-либо происходивших в блокчейне, начиная с первого перевода в 2009 году.
Как первое применение блокчейна, биткоин поспособствовал глобальному росту популярности этой технологии и ознакомил мир с ее преимуществами. Но впоследствии в процессе развития на базе блокчейна и его модификаций появились и другие криптовалюты, а также другие, не связанные с криптоинструментами формы эффективного использования этой технологии.
Сферы применения блокчейна: криптовалюта
Внедрение блокчейна увеличивает скорость обмена, уменьшает временные затраты, улучшает качество, надежность и доступность услуг. При этом увеличивается прозрачность и надежность, снижаются риски.
Главная сфера применения блокчейна — криптоиндустрия. Но помимо этого проекты на блокчейне используются в банковском секторе, сфере финансовых услуг, платежных сервисах, госсекторе (госуслуги, реестры недвижимости, нотариат, электронное голосование и др.), транспорте и логистике, IoT, здравоохранении, управлении интеллектуальной собственностью, энергетике, и т. д.
В криптоиндустрии блокчейн стал технологической основой для выпуска криптовалют, которые являются осовремененной версией хайековских «частных денег». При этом крупнейшие из них, такие как биткоин и эфир, имеют глобальный характер обращения.
На основе этой технологии происходит токенизация. Выпуск токенов — это особая форма секьюритизации активов на базе массового и глобального спроса инвесторов. Снижение издержек при этом гораздо значительнее, по сравнению с процедурами традиционных финансовых рынков.
Сферы применения блокчейна: банковское дело
Блокчейн позволяет сделать все процессы в банковской индустрии безопаснее, надежнее и прозрачнее. Денежные переводы, расчеты при сделках с ценными бумагами, аккредитивы, KYC-комплаенс, рутинная работа бэк-офисов банков — все эти операции теперь проходят с внедрением этой технологии.
Блокчейн может сократить затраты банков до 50%. Об этом заявляли еще в 2017 г. аналитики Morgan Stanley. По их мнению, блокчейн мог бы оптимизировать инфраструктуру, радикально сократить затраты и обеспечить необходимое повышение RoE (доходности собственного капитала) банков. Многим банкам, несмотря на присущую им консервативность, опасно было бы недооценивать потенциал этой технологии. Повсеместное ее внедрение может привести к ликвидации некоторых участников мировой финансовой системы.
Сферы применения блокчейна: кибербезопасность
На каждом узле блокчейн-системы хранятся копии всей базы данных в целом, и они сверяются между собой. Это придает системе жизнеспособность даже в случае успешных хакерских атак на ее одиночные узлы. Несмотря на то, что приложения на блокчейне предлагают анонимность, технология может использоваться, чтобы прикреплять реальные идентификационные данные к криптографическим в базе данных.
Известен стартап, создавший удобный способ безопасного внесения данных, их отслеживания и передачи имущественных прав через блокчейн-платформу. Это помогает риэлторским фирмам: управление записями становится удобнее, сокращается время поиска, растет конфиденциальность и прозрачность. Другой кейс — система репутации интернет-юзеров, начисляющая денежное вознаграждение в криптовалюте эфир, исходя из показателей репутации.
Сферы применения блокчейна: удостоверения личности
Такие ID представляют собой перевод персональных данных о человеке на блокчейн, создание его цифрового профиля. Есть большой перечень госуслуг, доступ к которым может быть осуществлен посредством блокчейна, и есть статистика передовых блокчейн-стран (Эстония, некоторые эмираты ОАЭ). Использование блокчейна и блокчейн-ID активным гражданином может стать обычным паттерном поведения уже при жизни современного поколения.
И в России, и на Западе государства в последние десятилетия активно ищут пути оптимизации своей административной деятельности. Хорошим решением для этого было бы перевести в блокчейн все рутинные и архаичные процессы. Проблематику прайваси и защиты информационной безопасности при этом никто с повестки дня не снимал — напротив, в эру блокчейна она станет приоритетом.
Как работают платежные средства на блокчейне?
Можно выделить как минимум два типа платежных средств. Прежде всего, это традиционные негосударственные криптовалюты, такие как эфир и биткоин, которые имеют многомиллиардную (если измерять ее в «традиционных» фиатных долларах США) капитализацию.
Второй тип — криптовалюты центральных банков — это зачастую попытки фиатных государственных эмитентов влить «новое вино в старые меха»: представить новую форму зарабатывания сеньоража, т. е. эмиссию госвалюты, как нечто сверхмодное и прогрессивное. Только единицы проектов по выпуску КВЦБ на сегодня предусматривают подлинно децентрализованный характер их эмиссии.
Критика блокчейна: минусы технологии
Есть проблемы технологического характера. Прежде всего, масштабируемость: сегодня многие популярные системы распределенных реестров не могут обрабатывать большое количество транзакций, что приводит к торможению оборота и процессинга транзакций в них.
Другой минус — недостаток конфиденциальности в связи с квазианонимностью блокчейна. Некоторые типы блокчейна потенциально уязвимы перед хакерскими атаками, а также перед так называемыми «атаками 51%» — когда, в полном соответствии с правилами системы, коалиция пользователей, обладающих большими компьютерными мощностями, может изменить записи в конкретном блокчейне. Этот процесс аналогичен тому, как перехватывает контроль мажоритарный акционер в АО.
Кроме того, регуляторные и правовые риски, а также иногда зашкаливающая ресурсо- и энергоемкость остаются специфическими рисками криптовалютного сектора блокчейн-индустрии.
Прогнозы по рынку: будущее технологии в России и за рубежом
Крупнейшие игроки рынка еще в 2015-17 годах организовались в консорциумы. Ими уже реализованы сотни экспериментов и тестов с блокчейнами различного типа.
Обладание этой технологией остается пропуском в элитарный клуб, ее диффузия в «массы» бизнесменов и потребителей будет не одномоментной. Хайп (и расцвет множества мошеннических проектов с применением криптоактивов), который мы наблюдали в 2017-2018 годах, вряд ли повторится, но успешных внедрений блокчейна в различные сегменты коммерческого и госсектора будет все больше.
Конвергенция ICO / STO с традиционными IPO приведет к трансформации и частичному снятию лишних барьеров на фондовом рынке. Поляризация отношения различных юрисдикций к технологии и феномен blockchain-friendly states — а значит, и регуляторный арбитраж — продлятся еще несколько лет, сменившись глобальным осознанием преимуществ этой технологии и ее зрячим принятием законодателями.