Децентрализованные приложения. Блокчейн.

В данной публикации я хочу поделиться кратким изложением книги Сираджа Равала (Siraj Raval) “Децентрализованные приложения. Технология Blockchain в действии”. Тема блокчейна очень популярна и технически сложная, а в русской версии идеи в достаточной степени искажаются своим видением переводчика. Возможно кому-то ещё будет затруднительно прочитать книгу (или подобные материалы) из-за постоянных отсылок к техническим аргументам, поэтому я берусь донести философию книги людям, далёким от технических деталей, но желающим вникнуть в этот тренд.
Что такое децентрализованные приложения?
Понятие “децентрализованные приложения” противопоставляется популярным в текущий момент централизованным веб-приложениям. Немного отходя от изложения, объясню, что здесь понимается под приложением? Когда-то на заре персональных компьютеров были очень популярны stand-alone приложения. Как можно догадаться из названия, это те приложения, которые распространялись на CD-дисках и устанавливались на компьютер. Эти приложения всегда находились на вашем компьютере. Сейчас такие приложения продолжают существовать, например, чтобы зайти в интернет, нужно установить браузер, который доступен независимо от того — в сети вы или нет. Установив браузер, вы идёте в интернет на любимые сайты. Когда-то сайты представляли собой простой текст, который скачивался и тут же бесхитростно отображался. В наше время сайты очень сильно усложнились и теперь представляют собой новый вид приложений — web-приложения. Они отличаются от stand-alone приложений тем, что их не надо скачивать, они постоянно хранятся на серверах в любой части Земли. На серверах по-прежнему хранятся странички для показа, а вместе с тем и данные пользователей (введённые наши с вами данные), программный код, который обрабатывает и защищает наши данные от несанкционированного доступа. И это очень важный момент, к которому постоянно отсылают принципы децентрализации. При таком подходе пользователь должен всецело довериться владельцу приложения. Если сервер перестаёт работать, приложение перестаёт быть доступным, в том числе, пользователь может потерять свои данные. Что хуже, владелец приложения, имея полный доступ к серверам (не важно, сколько их — единицы или тысячи), может без нашего ведома обрабатывать, продавать эти данные, они могут попасть в руки к злоумышленникам. По этому поводу Сирадж приводит отличную аллегорию: если поезд попал в аварию, виноватым несомненно окажется машинист, потому что он управляет составом; если же разделить управление поездом между всеми пассажирами поровну, при аварии невозможно будет обвинить кого-то. Отсюда берётся идея исключить управление приложением (и не только) неким владельцем и разделить владение между всеми пользователями — суть того самого децентрализованного приложения.
Как этого добиться?
- Код децентрализованного приложения должен быть открыт и доступен любому желающему. Также пользователи должны быть уверены, что именно этот код работает в их приложении.
- Децентрализованное приложение должно иметь свою криптовалюту. Поскольку код открыт — он больше не может сам по себе являться ценностью для его владельца. По этой же причине любой прогер может просто удалить строки, отвечающие за выполнение платежей, что делает обычную монетизацию бессмысленной. Поэтому автор предлагает конструктивно заложить ограничения на какие-нибудь ресурсы и сгенерировать набор токенов, цифровых монет, которыми можно расплачиваться за ресурсы. Токены можно привязать к фиатным деньгам в таких же сторонних децентрализованных сервисах (а как же без этого?), специализиующихся на эмиссии виртуальной валюты. В качестве примера можно привести ограниченное число мест на доске объявлений. Чем больше людей захотят разместить объявления на доске, тем больше будет их цена в условии дефицита.
- Децентрализованное приложение должно обеспечивать доверие между пользователями, операции с ресурсами и токенами должны быть видны и понятны всем пользователям и должны исключать возможность подлога и манипуляций. Тут-то на сцену и выходит блокчейн — также (приготовьтесь…) децентрализованное хранилище транзакций, специализирующееся на совершении операций без посредников. Это хранилище гарантирует подлинность участников операции и особо защищено от взлома.
- Отсутствие центральной точки отказа. Как писалось выше — при выходе из строя, блокировке какой-то техники, приложение должно продолжать работать, а наши с вами данные оставаться доступными.
Что интересно, описанная философия распространяется шире простых пользовательских приложений. Сирадж приводит несколько частных понятий с другими смыслами, но также соответствующих идеологии децентрализованных приложений уже в смысле новой эры цифровой экономики.
Децентрализованные организации — это организации, в которых полномочия распределены между сотрудниками. Такие организации существуют на базе консенсуса (кстати, также применяемого в блокчейне в техническом виде), и способность договариваться в такой организации — является достоинством. Сирадж приводит демократию как пример децентрализованной организации.
Автоматизированные агенты — это программы (но не обязательно искусственный интеллект), работающие в фоновом режиме без участия человека. Понятие может быть связано с умными контрактами.
Децентрализованные автономные организации — это смесь предыдущих двух понятий, то есть децентрализованная организация, в которой управление отдано алгоритму или искусственному интеллекту. Люди в такой организации не наделены ответственностью. Соответственно возможность договориться в такой организации является ошибкой. Bitcoin приводится как пример такой организации.
Экосистема
Автор углубляется в нюансы среды, в которой существуют децентрализонные приложения. Часть этой среды составляют данные, ценности (деньги), идентификация, вычисления, сети. Всё должно быть виртуальным и непременно децентрализованным — принадлежащим всем и никому, вплоть до совершения революции Интернета с отказом от централизующих провайдеров. Сирадж предлагает технический обзор на инструменты по работе в этих направлениях. Я же сразу перейду к финансовой части. Речь идёт о децентрализованных рынках для децентрализованных активов. Напомню, что ценности в информационной экономике принадлежат всем пользователями через владение валютами приложения. Автор сравнивает торги на таком рынке с виртуальным бартером. В такой среде правительство должно являться гарантом законности сделок и стабильности валюты. Кроме того, лояльность государства привносит доверие пользователей к продукту, поэтому необходима выработка официального отношения.
В новой эре информационной экономики каждый пользователь приложения является его акционером. Чем популярнее приложение и чем больше людей его скачает, тем больше становится его ценность. Рано или поздно пользователи захотят покупать и продавать цифровые активы. Это подводит к идее децентрализованной биржи и ICO — виртуальному варианту IPO. Сирадж пишет, что сейчас первичное размещение акций имеет высокий барьер входа для компаний, так как необходимо иметь крупный капитал, подключить специализированных банкиров, юристов, оформить кучу документов, а доступ к бирже имеют только аккредитованные инвесторы. И всё это ужасно централизовано. При этом отмечается, что на таких биржах в условиях выпуска множества разных криптовалют потребуется специальный механизм, способный конвертировать одну валюту или ценность в другую без привлечения третьей стороны.
Парадоксально, но люди не считают безопасным хранить свои цифровые активы на личном компьютере и всё равно отдают их на хранение в централизованный узел — виртуальный банк (например, Coinbase). В окончании автор приходит к выводу, что на текущий момент идеальная позиция Bitcoin в том, чтобы быть просто дополнением к существующей финансовой инфраструктуре, упрощающей и ускоряющих те операции, которые он способен улучшить.
Примеры
Сиражд приводит несколько существующих реализаций описанной в книге концепции, которые в разной степени удовлетворяют предъявляемым требованиям.
OpenBazaar
“eBay и BitTorrent в одном флаконе” — так комментируют создатели площадки свой продукт. OpenBazaar позволяет заниматься торговлей в обход каких-либо ограничений извне. Приложение работает по принципу пиринговой сети (peer-to-peer), когда продавец технически связан с покупателем напрямую, в нём отсутствует центральная серверная часть, а значит сеть невозможно заблокировать или отключить. Чтобы стать участником сети, необходимо скачать и установить приложение (причём, возможно, без помощи программиста будет не справиться).
Данные магазина хранятся непосредственно на компьютере продавца. Для совершения сделки используют Рикардианские контракты (не умные контракты). Такие контракты просто подтверждают законность сделок и не могут быть подделаны после подписания.
Интересно добавление роли арбитра в системе. Арбитром может быть любой участник, обязанности этой роли — разрешать споры во время сделок. Очевидно, что на каком-то этапе эту роль сможет заменить ИИ или продуманный алгоритм, однако сейчас эту роль должны выполнять люди. Арбитры могут взимать комиссию за участие в сделке. Также арбитры ранжируются по рейтингу, зависящему от качества их работы.
Отдельно занятна идея с репутаций. Приложение реализовано на протоколе Bitcoin и использует для идентификации участника совершение микроплатежа или микрохолда с последующим возвратом. Разработчики также работают над алгоритмом сети доверия (web of trust), когда участники могут кредитовать друг друга микроплатежами в знак доверия. При смене отношения участника, его (буквально) кредит доверия может быть отозван. Также в системе есть чёрный список, который хранится на всех узлах сети одновременно, таким образом о попадании в него кого-либо информируются все участники.
Lighthouse
Краудфандинговые площадки не обошли стороной концепцию децентрализации. На текущий момент популярные сервисы вроде Kickstarter правят бал, забирая большие комиссии, которые вкупе с банковскими комиссиями лишают сборщика пожертвований ощутимой части денег.
На помощь приходит Lighthouse. И снова отмечается некоторая сырость продукта и отсутствие банального дружественного подхода к пользователю. Для работы с приложением, его надо скачать в виде бинарных файлов и установить на компьютер. Краудфандинговый проект выгружается в файл его инициатором и передаётся между пользователями для внесения пожервований.
Приложение реализовано на протоколе Bitcoin и использует его способность в создании платежа с несколькими участниками. В этом случае в базу сохраняется операция на требуемую сумму, а к ней подключаются участники. Пока сумма не будет собрана, операция не считается успешной. При невозможности собрать сумму, операция завершается неуспехом, а взносы возвращаются участникам.
La’Zooz
Это приложение для такси — аналог Uber. Отмечается его дружелюбный интерфейс в отличие от вышеописанных проектов, нацеленный на привлечение большего числа пользователей. Но, исследуя открытый код проекта, Сирадж указывает, что в приложении используется централизованный сервер, в который передаются все данные. Кроме этого, в приложении выявляется целый ряд технологических изъянов. Так зачем же он тогда включил его в книгу? А дело в том, что создатели проекта проповедуют концепцию децентрализованной автономной организации, где стираются отличия между создателем ценности и её потребителями. В организации La’Zooz есть следующие роли: разработчики, пользователи и спонсоры. Также в приложении внедрена сеть доверия, таким образом, все решения принимаются сообща через голосование по принципу делегативной демократии (liquide democracy). Стартап управляется всеми и никем.
Заключение
Для подведения итога, добавлю несколько моих собственных мыслей, которые, честно говоря, полны противоречий. Технологии, предлагаемые для децентрализации довольно сырые и сложны для внедрения в обыденную жизнь. Кроме того, мир находится в активной стадии оцифровки физической реальности и эры больших данных. Что значит совершенно противоположную концепцию всеобщей открытости, когда люди передают сведения о своём поведении, привычках, вещах, связях, шаблонах мышления (осознанно или нет) в централизованные аналитические системы. Может пугать тот факт, что это попирает какие-то человеческие свободы, но свобода — понятие относительное, и я уверен, что от использования больших данных и последующего появления интеллектуальных систем принятия решений во многих сферах нашей жизни большинство людей только выиграет.
Скорее всего идеи децентрализации, как ни странно, лучше всего применимы в деликатных сферах, где особое внимание уделяется защищённости данных и секретности, а люди готовы терпеть неудобства. Внедрение в широкие потребительские сегменты непременно входит в противоречие с теми же государственными порядками, так как такие системы с трудом поддаются отслеживанию и регулированию, а их авторы открыто выдвигают анархические лозунги. В общем, на мой взгляд, вряд ли виртуальный мир будет по-настоящему децентрализован хоть когда-то.