Курс Технология блокчейн и Биткоин Лекция 1. Раздел: Сравнение процедуры традиционной банковской онлайн транзакции и транзакции в сети Биткоин. Сравнение не убедительное. В приведенном примере оплаты за ритейл-услугу (покупка чашки кофе) получается, что подтверждения транзакции в сети Биткойн нужно ждать час, а при использовании традиционного POS-терминала подтверждение мгновенное (а при использовании банком системы мгновенных платежей, средства будут зачислены на счет продавца в другой банк почти мгновенно). При этом, покупатель при блок-чейне оплачивает комиссии сам, т.е. сумма на ценике и сумма перевода разные, а при использовании POS-терминала сколько на ценике, столько и списывается. Чем в приведенном примере для участников транзакции использование блок-чейн отличается от использования простых электронных кошельков? Не могу отделаться от ощущения, что блк-чейн - очередная "мода", позвляющая ИТшникам полчать финансирование.
|
Место и роль блокчейнов в эко-системе цифровой экономики
Блокчейн - это гораздо больше чем криптовалюта
Цель: Определить нишу для технологии распределенных реестров в процессах современного этапа развития цифровой экономики.
Драйверами роста цифровой экономики являются современные информационные технологии, часто называемые инновационными или прорывными. Эффекты, привносимые ими, иногда бывают просто ошеломляющими. На наших глазах отдельные отрасли человеческой деятельности изменяются до неузнаваемости. Например, использование последних достижений из области Big Data, Data Mining обусловило появление новой прикладной науки – бионформатики, открывшей совершенно новые горизонты в медицине. С помощью инструментов анализа больших данных началась расшифровка генома человека, и не только его. Разработаны эффективные средства для борьбы с генетическими, наследственными заболеваниями, существенно ускорился процесс разработки новых лекарств и т.д.
Не меньшие надежды возлагаются на технологию построения децентрализованного, распределенного реестра – блокчейн. Не прошло и одиннадцати лет с момента запуска Биткоин-сети и публикации первых статей, подписанных Сатоши Накомото, а идеи децентрализации приложений и данных прочно овладели лучшими умами. Многие аналитики сулят блокчейну самое радужное будущее. В IT-сообществе рассматриваются различные области применения распределенных реестров, анализируются уже существующие платформы, оценивается технологический и экономический эффекты от их внедрения. Попытки объявить эту технологию панацеей от всех цифровых бед Россией уже начинают просто пугать. Безусловно за блокчейном большое будущее. Совершенно обосновано системы распределенного реестра в федеральной программе "Цифровая экономика Российской Федерации" включены в число основных сквозных цифровых технологий, призванных повысить конкурентоспособность России на глобальном рынке. Широта и возможности применения распределенных реестров видятся безграничными, они способны трансформировать целые сектора коммерческой или государственной деятельности. Эта технология позволяет в принципе устранить в сложившихся цепочках хозяйственных связей посредников. Перспективы ритейла в этом плане видятся весьма ограниченными. Недолгим окажется век нотариата, загсов, кадастров, множества других контор и палат, суть деятельности которых сводится к регистрации, хранению и аудиту событий, фактов, сделок, вообще коммуникаций (операций) в системах, включающих граждан, государства, предприятия, и др.
Весьма символичной представляется дата появления сети Биткоин. Она практически точно совпала с началом Четвертой промышленной революции. Предложенная Сатоши Накомото технология целиком и полностью отвечает основным трендам эпохи формирования Шестого технологического уклада: рождена на стыке экономики, психологии и нескольких научно-технических направлений; является сетевой по своей природе и обеспечивает массовые коммуникации пользователей, исключая любых посредников в общественных и бизнес-процессах; позволяет не просто автоматизировать, а трансформировать отдельные сферы деятельности или бизнес-функции.
Полная трансформация ожидает и многие вполне успешные, и даже процветающие в настоящее время бизнесы. Например, всем известный Uber – прекрасная сетевая компания с колоссальной капитализацией. И ведет свои дела эта компания правильно, в полном соответствии с духом и законами сетевой экономики (но правда с законами, действующими на начальном этапе ее развития). Компании удалось инкапсулировать опыт клиента, современные технологии (сотовые телефоны с возможностями геолокации) и традиционный товар – доставка из одной точки в другую - в эффективную платформу, фактически предлагающую новый, информационный продукт. Они сумели сформировать электронную цепочку добавленной стоимости, и хорошо на этом заработали. Но недавно в Израиле появился проект "совместного использования автомобилей", который сразу назвали "убийцей Убера" или "анти-Убером". Сегодня ареал распространения инициативы La'Zooz уже включает Северную Америку, Западную Европу, Ближний Восток. Это первое децентрализованное приложение, основанное на применение блокчейна в сфере услуг такси. Клиент при его помощи даже сможет заработать, если будет двигаться с определенной скоростью, или помогать развитию проекта. В данном случае мы имеем дело с полной трансформацией модели взаимодействия участников в сфере частного извоза. И эта трансформация обеспечивается технологией распределенного реестра. Еще не затихла борьба профсоюзов таксистов с компаниями типа Uber и Lyft, как уже эти новые технологичные предприятия начинают вытесняться с рынка стартапами, создающими бизнес на основе распределенного реестра.
Однако, как и любая другая технология в настоящее время блокчейн имеет свои ограничения, заслуживающие самого серьезного внимания. Как минимум, теория и практика распределенного реестра требуют своего дальнейшего развития. Только в этом случае применение данной технологии в определенных сферах будет экономически выгодным и технологически оправданным.
Прежде всего, хотелось бы несколько уточнить терминологию. Часто в определении понятия блокчейн проскальзывает метафора "распределенная база данных". Это вряд ли является корректным. Распределенные базы данных появились задолго до старта сети биткоинов и подразумевает под собой рассредоточенную по узлам сети базу данных, поддерживающую свою функциональность за счет фрагментации и репликации. Здесь самым существенным аспектом является наличие единого, центрального сервера, копирующего свои данные на вспомогательные серверы (реплики). Конечно, такой подход далек от идеи децентрализации, реализованной в технологии блокчейн.
В заключение вновь вернемся к перспективам технологии распределенного реестра и тем препятствиям, которые стоят на пути его развития. Как ни странно, их достаточно много. Это и правовая неурегулированность, недопонимание места и роли этой технологии топ-менеджментом, принимающим решение об автоматизации, технические особенности (малая пропускная способность сети, постоянный рост самого реестра) и др. Но есть еще одно. В свое время именно Биткоин стал начальной вехой в развитии блокчейн-технологий. Многие обозреватели совершенно искреннее считают его одним из самых гениальных изобретений последних десятилетий. Однако сейчас ажиотажный интерес, непомерное восхищение техническими решениями, применяемыми в сети Биткоин, оказывают медвежью услугу технологии блокчейн в целом, область применения которой гораздо шире. Попытки прямо применить техническое решение, изначально предназначенное для создания криптовалюты – очень специфичного по функционалу проекта – к решению других задач (например, в области госуслуг, медицине) ожидаемо приводят к проблемам и разочарованию. Теория блокчейна требует своего дальнейшего развития. Пока в технологиях построения распределенного реестра будут превалировать схемы, реализованные в протоколе Биткоин, мы не сможем учитывать реалии бизнес-логики, присущие другим предметным областям и практическим задачам. В связи с этим, прежде чем перейти к обсуждению протокола Биткоин, немного поговорим о технологии блокчейн в целом.
Технология блокчейн и децентрализованные приложения
Цель: Сформировать представления о соотношении между централизованными, децентрализованными и распределенными системами, блокчейном и Биткоином.
По сути реализация блокчейна, предложенная Сатоши Накомото, наполнила новом смыслом теорию и практику применения распределенных систем. Децентрализованные в том или ином смысле информационные системы конечно существовали и до сети Биткоин, однако, во-первых, область их применения была весьма ограничена и, во-вторых, с точки зрения архитектуры практически все известные разработки по сути оставались централизованными, децентрализация в них применялась на уровне отдельных технических решений. При этом доминирующим способом организации высокоуровнего сетевого взаимодействия являлась архитектура клиент-сервер. Безусловно, столь яркое появление криптовалюты было в достаточной степени неожиданным и. безусловно, послужило мощным толчком к развитию децентрализованных приложений. Именно сеть Биткоин позволила достаточно четко определить новые подходы к обеспечению целостности информации, передаваемой между абонентами, не имеющими оснований доверять друг другу. Причем цели удалось достичь без привлечения третьей, надежной стороны (центрального звена, банка, управляющего органа, выделенного сервера и т.д.) на основе распределенных вычислений, криптографических преобразований и пиринговых сетей. Пришедшее вместе с появлением протокола Биткоин осознание возможностей соблюдения прав на владение ценностей математическими методами и использования модели с ограниченными ресурсами, умноженных на вновь открывшийся потенциал одноранговых сетей, мотивировало разработчиков на создание нового класса программного обеспечения - децентрализованных приложений.
Таким образом, протокол Биткоин – частный случай категории систем, основанных на технологии блокчейн, являющихся, в свою очередь, подклассом децентрализованных приложений.
В чем именно состоит сверх-задача децентрализованных приложений? Они существенно расширяют возможности многоуровневой архитектуры взаимодействий, реализованной стеком протоколов сети Интернет. Например, платформа Биткоин по сути является надстройкой (новым уровнем) над стандартной телекоммуникационной, глобальной сетью, добавляя к существующей возможности обмена данными новое качество – проведение прямых, безопасных платежей.
Появление первой криптовалюты нельзя рассматривать как очередной этап автоматизации в сфере денежного обращения. Биткоин явился следствием глубокой трансформации известных платежных систем. Децентрализованный консенсус и технология блокчейн, лежащие в основе нового протокола, позволили впервые без обращения к центральному регулятору решить задачу двойных трат, с которой несколько десятилетий не могли справиться разработчики электронных денег.
Программа майнинга биткоинов определяет их ограниченную эмиссию – всего может быть добыто лишь 21 000 000 токенов. Последняя монета сформируется в 2140 году.
![](image2.jpeg)
Двойная трата или двойное расходование (от англ. Double spending) — повторное использование в платежной системе одних и тех же цифровых монет. В сети Биткоин теоретически может быть совершена путем создания второй транзакции, использующей в качестве источника (входа) ранее использованные средства (растраченные выходы).
Попробуем сформулировать определения для основных игроков на поле децентрализации информационных систем, используя индуктивные умозаключения. Начнем с платформы Биткоин.
![](image2.jpeg)
Биткоин (от англ. Bit Coin – цифровая монета) – криптовалюта, которая в отличие от фиатных денег не создается и не контролируется на государственном уровне, а также является дефляционной по своей природе, благодаря строго ограниченной эмиссии. По сути сеть Биткоин представляет одноранговую платежную систему (отсутствуют какие-либо управляющие или процессинговые центры). Для учета операций используется одноименная единица (BTC, не путать с BCH, применяемой в форке Биткоина - Bitcoin Cash). Минимальная составная часть BTC – сатоши (Satoshi, 1 сатоши = 10-8 BTC). Все сделки в сети Биткоин абсолютно прозрачны и необратимы, т.е., подтвержденная и записанная в реестр операция (транзакция) не может быть отменена. При этом, при работе непосредственно в сети Биткоин обеспечивается анонимность пользователей. Необходимым и достаточным условием для работы с платежной системой является наличие установленного клиента. Протокол платформы Биткоин и программный код базового клиента (Bitcoin Core) полностью открыты. Технологически доверие между участниками системы поддерживается с помощью децентрализованного консенсуса. Консенсус достигается на конкурентной основе, для его реализации используется механизм доказательства выполненной работы (Proof of Work).
![](image2.jpeg)
Блокчейн (от англ. Block Chain – цепочка блоков) – структура данных, в которой информация о совершенных взаимодействиях (транзакциях) унифицирована и хранится в виде цепочки (связанной последовательности) блоков. Представляет собой децентрализованное хранилище транзакций, не требующее для совершения операций участия каких-либо посредников. Использование технологии блокчейн впервые позволило обеспечить децентрализованный консенсус. Объем цепочки блоков перманентно увеличивается по мере добавления новых блоков, содержащих самые последние записи. Блоки добавляются в блокчейн в линейном последовательно хронологическом порядке. После добавления блоки становятся навсегда неизменяемыми. Это касается также их содержания. Управление блокчейном, построенным на принципе децентрализации, в целом и в частности осуществляется сетью.
![](image2.jpeg)
Децентрализованные приложения (от англ. Distributed Application, DApps) – приложения, построенные согласно парадигме, являющиейся архитектурным антиподом централизованной (клиент-серверной) модели. В децентрализованной системе отсутствуют узлы, управляющие функционалом иных узлов.
Характерные признаки успешной децентрализованной модели:
- Максимальна децентрализация. Прежде всего идеальное решение должно обеспечить децентрализацию данных (данные хранятся децентрализовано, максимально надежно, без какого-либо участия арбитра или центрального узла). Каждый пользователь обладает полностью функциональной копией всей совокупности данных. Кроме того, осуществляется децентрализация ценности, идентичности, вычислений.
- Синхронизация данных всех пользователей осуществляется в автоматическом режиме на основе механизма достижения распределенного консенсуса, а не за счет "контроля сверху" (управляющего узла).
- Открытость кода. Все технологические аспекты доступны любому желающему. Абсолютная прозрачность и несомненная безопасность данных лучше всех остальных доводов вызывают доверие к приложению.
- Монетизация приложения осуществляется через внутреннюю криптовалюту. Схема получения прибыли разработчиком может походить на механизм, опробованной в сети Биткоин. Рост ценности платформы дал возможность хорошо заработать всем, кто стоял у ее истоков и немало способствовал ее развитию. Поэтому разработчику достаточно предусмотреть в системе дефицитные, полезные для пользователей ресурсы. Оплата доступа к ресурсам осуществляется посредством специальных токенов (коинов). Пользователи будут конкурировать за токены, чтобы получить возможность работать с системой. Владельцы дефицитных ресурсов получают плату в токенах. Перманентный рост сети при ограниченном количестве токенов, вызывает неизбежный рост ценности внутренних коинов. Токенами может поощряться любая полезная работа в рамках приложения, например, майнинг.
- Отсутствие единой точки отказа. Работоспособность приложения (доступность данных) не должна нарушаться при выходе из строя или блокировке какого-то оборудования или инфраструктуры.
- Эффективность работы приложения не должна зависеть от количества устройств, на которых оно активировано. Такую же природу имеет требование, согласно которому ни одно лицо или организация не может владеть "контрольным пакетом" его токенов.
Не все децентрализованные приложения удовлетворяют всей совокупности представленных признаков. Например, криптовалюта Ripple последнему критерию не соответствует.
![](image2.jpeg)
Распределенные системы (от англ. Distributed Application) – системы, построенные с использованием технологии обмена данными между участниками, в которой вычисления распределяются между несколькими узлами.
Распределенные системы могут быть как централизованными, так и децентрализованными. Причем, приложения, использующие блокчейн и пиринговые технологии, могут быть распределенными и децентрализованными одновременно.
Приватные и публичные блокчейны
Цель: Сформулировать определения, сходства и различия, достоинства и недостатки приватных, регулируемых и публичных блокчейнов.
Системы хранения данных, построенные на блокчейне, могут отличаться схемами организации доступа к информации. Т.е., можно построить децентрализованное приложение, в котором обычные пользователи могут только знакомиться с контентом (или вообще не иметь к нему доступа), а его формирование и администрирование являются уделом исключительно привилегированных участников. В таких случаях говорят о приватных (закрытых) блокчейнах.
Итак, в приватных блокчейнах в противовес публичным (открытым) генерация новых блоков осуществляется централизованным образом. Такой подход очень удобен для автоматизации большого числа внутрикорпоративных процессов, и не только. Большая часть узлов в такой сети способно только считывать данные транзакций блокчейна. Все вопросы аудита, управления данными, децентрализованными приложениями находятся в ведении четко очерченного круга доверенных узлов.
Такая схема достижения консенсуса обладает рядом преимуществ:
- Может быть достигнута весьма низкая стоимость транзакций (валидация транзакций реализуется доверенными, как правило, высокопроизводительными узлами).
- Можно добиться достаточно высокой пропускной способности системы (показатель TPS - transactions per second – число обрабатываемых транзакций за секунду).
- Следует признать, что ряд бизнес-процессов требует повышенного контроля со стороны управляющего центра. Применение приватного блокчейна обеспечивает более контролируемую и прогнозируемую среду по сравнению с системами на основе публичного блокчейна. Как следствие, закрытые децентрализованные приложения обычно являются более гибкими, позволяющими легче менять их функциональность.
- Можно использовать более "дешевые" (и быстрые) способы достижения консенсуса по сравнению методом доказательства работы. Самый простой пример такой схемы кратко можно описать следующим образом: в системе выделено определенное (достаточное) число доверенных узлов-майнеров, выполняющих функции контроля и введения новых данных в блокчейн. Для осуществления контроля и аутентификации майнеров используется механизм электронной подписи. Конкуренция среди майнеров отсутствует, они могут генерировать блоки по очереди.
- Доверенные ноды, отвечающие за соблюдение консенсуса на уровне блокчейна, не станут заниматься зловредной деятельностью, например, не будут организовывать атаки 51%.
- Можно обеспечить высокую скорость подтверждения транзакций.
В принципе, при необходимости в приложениях на основе приватного блокчейна можно достаточно легко осуществлять откаты системы в некоторое предыдущее целостное состояние. Подобные изменения в крайних случаях реализуются и в публичных блокчейнах. Достаточно вспомнить хард форк платформы Эфириум 20 июля 2016 после обнаружения системной ошибки в протоколе, обеспечивающем автономное регулирование инвестиционного капитала. Злоумышленники смогли похитить около 50 миллионов долларов, но не смогли их вывести из системы. Именно благодаря хард форку похищенные средства удалось вернуть (а от единой платформы отпочковался Ethereum Classic (ETC)). Однако, для публичных систем подобные изменения блокчейна воспринимаются как нечто из ряда вон выходящее и, по определению, не должны допускаться.
Приложения, сочетающие достоинства технологий криптовалют (блокчейн 1) и умных контрактов (блокчейн 2), позволяют заменить большое число централизованных сервисов, доминирующих в настоящее время в сфере кадастров (реестров) или финансовых (учетных) систем.
Платой за исключительные достоинства приватных блокчейнов является существенный отход от идеалов децентрализации, что в свою очередь приводит к снижению уровня безопасности и надежности системы.
Если информация блокчейна полностью недоступна для пользователей, интегральная безопасность системы уменьшается. Даже если приложение обеспечивает безопасность реестра данных, коммуникации с пользователями оказываются уязвимыми, например, для MitM-атак. Для публичных блокчейнов эта проблема решается за счет использования универсального механизма подтверждения транзакций, в реализации которого теоретически могут участвовать все пользователи. Пренебрежение этим важнейшим инструментом и использование централизованного подхода в закрытых системах может отрицательно сказаться на их безопасности. Поскольку транзакции в этом случае доступны ограниченному числу узлов, повышается риск вмешательства человеческого фактора в функционирование системы, причем пользователи не смогут оперативно обнаружить такое вмешательство. По сути, закрытая архитектура блокчейнов нарушает два ключевых аспекта технологии децентрализованных приложений:
- децентрализация, как гарант отсутствия единой точки отказа;
- доверие в следствии использования математически обоснованных и автоматически поддерживающихся правил обработки транзакций без какого-либо участия человека.
Вышесказанное касается в том числе и систем, в которых клиенту, предоставляется доступ только к транзакциям, касающимся исключительно самого клиента.
Вместе с этим, решения, обеспечивающие неизбирательный доступ на чтение данных блокчейна вкупе с открытым протоколом ликвидируют большинство угроз, вызванных особенностями архитектурой закрытых блокчейнов.
![](image2.jpeg)
Атака посредника, или атака "человек посередине" (от англ. Man in the middle (MITM)) — разновидность атаки, в которой злоумышленник перехватывает и при необходимости вносит изменения в сообщения, передаваемые друг другу двумя доверенными сторонами. В случае успеха позволяет обойти защиту канала связи в виде механизма взаимной аутентификации. Для этого злоумышленнику достаточно либо уметь имитировать сообщения каждой из сторон информационного обмена, либо маскировать свое присутствие в качестве посредника.
Примерами крипто-проектов, основанных на концепции приватных блокчейнов, являются hyperledger, Mijin или ripple.
Характерной особенностью публичных блокчейнов является полный контроль над системой со стороны всех ее участников. В частности, даже разработчики системы не могут по собственной инициативе изменить ее функционал, код или данные.
Данные публичного блокчейна доступны повсеместно, невзирая на статусы и полномочия. Любой участник сети может провести некоторую операцию, фиксация которой осуществляется в виде транзакции. Транзакции подтверждаются не каким-то определённым узлом. Нельзя даже спрогнозировать, кто окажется в роли валидатора. Смысл публичной системы в том, что ни один ее участник не обладает преимуществом или особыми полномочиями для подтверждения транзакций. Мы имеем дело с истинно демократичной системой. Каждый имеет возможность создавать смарт-контракты, переводить средства, отправлять сообщения или вносить новые данные. В таких системах участники обладают некоторой степенью анонимности. Открытые блокчейны призваны защищать особо важную, неизменную информацию.
Очевидные преимущества открытых блокчейнов, включая прозрачность данных и процессов, а также открытость базовых технологий и протоколов (что обеспечивает высокий уровень доверия к такого рода системам), в обозримом будущем должны привести к масштабной трансформации традиционных финансовых институтов и всей финансовой системы в целом.
Кроме публичных и приватных блокчейнов можно выделить некий промежуточный класс технологий, представителей которого мы назовем регулируемыми блокченами.
Сравнение основных аспектов различных типов блокчейнов приведены в таблице 1.1
Приватные блокчейны | Регулируемые блокчейны | Публичные блокчейны | |
---|---|---|---|
Прозрачность системы | Закрытая система. Число пользователей ограничено рамками организации (корпорации). Исходные коды закрыты. | Открытые данные. | Полностью открытая система, включая исходные коды, протоколы и т.д. Любое лицо может присоединиться к подобной системе. |
Анонимность пользователей | Псевдо-анонимная система. Анонимность обеспечивается в рамках системы. | Полная идентификация пользователей. | Полная идентификация пользователей. |
Механизм консенсуса | В системе присутствуют однозначно определенные доверенные узлы, управляющие сетью. | Смешанный. | На основе криптографической верификации, таких как proof of work, proof of stake и т.д. |
Кто контролирует систему | Организация (корпорация). | Организация (корпорация). В обеспечении консенсуса (верификация данных, аутентификация доверенных узлов) могут участвовать обычные пользователи. | Все участники сети, включая разработчиков, пользователей, поставщиков услуг, майнеров. |
Бизнес-схема | Управление активами. | Универсальная. Прямой доступ к чтению (созданию) транзакций для пользователей ограничен с использованием дружественных интерфейсов и приложений. | Транзакционная. |
Состав майнеров | Перечень майнеров четко определен вне системы. | Перечень майнеров четко определен вне системы. | Любой участник может стать майнером. |
Тип майнинга | Комбинированный майнинг. | Ротационный майнинг. | Конкурентный майнинг. |
Наличие регулятора | Да | Да | Нет |
Устойчивость к цензуре | Валидная транзакция может быть отринута регулятором, или даже исключена из блокчейна после внесения. | Валидная транзакция может быть отринута регулятором. | Удовлетворяющая всем правилам системы транзакция будет в конце концов обязательно добавлена в блокчейн. |
Отметим еще один немаловажный факт - отношение традиционных финансовых учреждений к публичным блокчейнам, в целом, остается гораздо более прохладным чем к закрытым или регулируемым. Основные претензии к открытым системам со стороны финансовых регуляторов сводятся к отсутствию контроля за процессами обработки транзакций (в первую очередь это касается анонимности майнеров, что зачастую прямо противоречит действующему законодательству), угрозам конфиденциальности клиентов в публичной среде, невысокой гибкости и сложности модернизации.
Сравнение процедуры традиционной банковской онлайн транзакции и транзакции в сети Биткоин
Цель: Определить перспективы использования криптовалют в качестве платежного средства.
Какие перспективы в финансовой сфере имеют криптовалюты? Прочитайте два следующих абзаца и решите сами.
Традиционная схема банковской онлайн транзакции выглядит примерно так. Посредством POS-терминала, в целях аутентификации держателя, информация о карте из терминала передается в банк-эквайрер, обслуживающий данный терминал, и имеющий соглашение с владельцем торговой точки. В зависимости от договоренностей торговая точка оплачивает банку комиссию за его участие в обработке транзакции. Далее банк-эквайрер передает информацию в платежную систему, обслуживающую данную карту. Там данные попадают в операционный центр, к которому подключены банки-участники платежной системы. В этом центре проходит проверка на предмет наличия или отсутствия платежных данных карты в стоп-листе и в зависимости от полученного результата в транзакции отказывается или она одобряется с дальнейшим направлением в банк-эмитент, выпустивший данную карту, и обслуживающий привязанный к ней банковский счет/счета клиента. Здесь она попадает в процессинговый и авторизационный центр, в котором проводятся расширенные проверки на легальность обрабатываемой транзакции. При подозрении на мошенничество или нарушение условий обслуживания дается отказ. В зависимости от типа карты (дебетовая или кредитная) и установленного банком приоритета авторизации здесь может проводиться проверка доступного остатка средств на счете или платежного лимита, а также сверяться авторизационный PIN-код держателя. При удовлетворении всем проверкам эмитент одобряет операцию и в рамках транзакции, также через платежную систему, ответ дается в торговую точку. Путем взаиморасчетов с платежной системой эмитент перечисляет эквайреру сумму запрашиваемых по транзакции средств, а также комиссию платежной системы за обработку транзакции. В свою очередь с клиентского счета банк списывает оплачиваемую и подтвержденную клиентом к оплате сумму денег (для дебетовых карт) или уменьшает доступный платежный лимит, тем самым резервируя часть средств к последующему списанию (для кредитных карт). Транзакция завершается в момент поступления обратно в торговую точку ответа с одобрением или отказом.
Терний на пути транзакции в сети Биткоин существенно меньше. Программное обеспечение клиента пользователя, выполняющего платеж криптовалютой, отправляет транзакцию в сеть Интернет (причем могут использоваться самые разные каналы от Wi-Fi до мобильных). Транзакция подтверждается нодами (узлами) сети Биткоин и в конце концов одним из майнеров включается в блок. В свою очередь блок добавляется в блокчейн. На всякий случай следует подождать добавления еще 6 блоков (ожидание займет не больше часа). Все. Платеж проведен. На самом деле наверняка времени на операцию уйдет больше, поскольку мы пренебрегли задержкой, в течение которой транзакция в составе блока попадет в блокчейн. Но согласитесь, действий потребовалось гораздо меньше, а прозрачность системы – несравненно выше.
Несколько утрированный взгляд на платеж в сети Биткоин приведен на рисунке 1.2. Здесь некая Марина расплачивается за выпитый кофе биткоинами, направляя их владельцу кофейни Сергею.
Полагаю, Вы согласитесь с простым доводом, что всегда найдутся предметные области, для которых использование криптовалюты гораздо предпочтительнее фиатных денег. Еще раз продекламируем один из тезисов этой книги – криптовалюта отнюдь не призвана сразу и навсегда заменить фидуциарные деньги. По крайней мере сейчас. Но право на свои ниши криптомонеты безусловно уже заслужили.
Преимущество биткоин-транзакции перед банковской онлайн транзакцией:
- Избавление от посредников (банков-корреспондентов).
- Высокая скорость проведения.
- Меньшая цена транзакции.
- Низкая вероятность возникновения ошибок.
- Децентрализация.
- Потрясающая устойчивость, отсутствие единых точек, выход из строя которых может обрушить систему.
- P2P-взаимодействие.
- Биткоин-транзакцию отменить невозможно.
Краткое описание и основные термины
Цель: Положить начало формированию понятийного и категориального аппарата предметной области, сформировать начальное представление о децентрализованном консенсусе и функционировании сети Биткоин.
Так что же все-таки такое блокчейн или распределенный реестр? Рассмотрим основные аспекты этой технологии на примере родоначальника цепочек блоков - криптовалюты Биткоин.
Платформа Биткоин — это набор концепций и технологий, образующих цифровой фундамент для экосистемы электронных денег. Токены (цифровые монеты), известные во всем мире как биткоины (BTC), используются для хранения или передачи ценностей между участниками сети (платформы). Пользователи криптовалютной платежной системы контактируют друг с другом посредством протокола Биткоин, реализуемым поверх сети Интернет. Однако, система может быть развернута в рамках какой-либо другой сети. Стек протоколов платформы Биткоин доступен в виде программного обеспечения с открытым исходным кодом и может быть запущен на различных устройствах, включая стационарные компьютеры, ноутбуки и мобильные устройства, что делает доступ к платежной системе повсеместным и легко осуществимым.
Оборот биткоинов в сети напоминает движение традиционных, фиатных денег. Владельцы BTC могут свободно их покупать, тратить на приобретение товаров, передавать друг другу и т.д. Покупка или обмен биткоинов на фидуциарные деньги или другие альткоины может производиться на специализированных криптовалютных биржах.
Несмотря на сходство в использовании биткоинов и фидуциарных денег, между ними имеется принципиальное отличие. BTC полностью виртуальны, т.е., не существует ни какого аналога физических купюр, ни даже монет в цифровом формате (как это бывает в случае электронных денег или чеков). Есть только записи (транзакции) в огромной бухгалтерской книге, фиксирующие передачу ценности от одного владельца другому.
Купюры определенного номинала декларируются в момент передачи ценности от одного участника сети другому или во время очередной эмиссии новой порции токенов. Каждый участник сети Биткоин владеют набором ключей, с помощью которых он способен доказать права владения на определенную сумму BTC в сети Биткоин. Эти ключи хранятся в специальных программных клиентах (а иногда и в физических устройствах), называемых цифровыми кошельками. Обладание ключами – единственное необходимое требование для совершения платежа (создания транзакции). Т.е., в сети Биткоин контроль над денежными средствами полностью ложится на самих пользователей, влияние какого-нибудь центрального звена (например, банка) принципиально исключается.
![](image2.jpeg)
Ключ (от англ. key) - фраза (последовательность битов), на основе которой криптографическая система может выполнить шифрование и дешифрование криптограмм, манипуляции с электронной подписью (подписание документа и верификация подписи), а также решить задачи идентификации и аутентификации. В зависимости от типа криптосистемы ключ может быть симметричным (один и тот же ключ применяют для шифрования и дешифрования) и ассиметричные (используется криптопара: открытый (публичный) и закрытый (приватный) ключи).
![](image2.jpeg)
Криптография - наука о технологиях обеспечения конфиденциальности (сокрытия контента от посторонних лиц), целостности (поддержание актуального состояния данных) и аутентификации (подтверждение подлинности (аутентичности) субъектов или объектов).
Выход в сеть в 2009 году нового платежного инструмента – платформы Биткоин - явился кульминацией многолетних исследований в области криптографии, математики и распределенных систем. В качестве опорных технологий новой платежной системы выступают:
- Децентрализованная пиринговая (P2P, peer-to-peer) сеть (протокол Биткоин).
- Доступный всем реестр (бухгалтерская книга) транзакций (так называемый блокчейн).
- Децентрализованная математически и детерминистически эмиссия денег (так называемый майнинг).
- Система децентрализованной проверки (валидации) транзакций.
С технологиями разберемся несколько позже. А пока обозначим две концепции, на которых во многом основана идея распределенных реестров. Это конечно же уже упоминавшаяся децентрализация и механизм достижения консенсуса среди не доверяющих друг другу пользователей системы (а также ее полная прозрачность).
Начнем наш экскурс с децентрализации. Идея сам по себе простая, но реализовать ее в полном объеме не удавалось долго. Суть в том, что каждый участник, имеющий доступ к распределенному реестру, хранит у себя его полную и актуальную копию. Если кто-то вносит изменения в блокчейн, то его копия тут же (на самом деле после проверки) рассылается всем остальным пользователям системы. С такой архитектурой система получается чрезвычайно отказоустойчивой. Может поломаться все, но, если остался хотя один участник блокчейн-сети с неразрушенным реестром, имеется принципиальная возможность полностью восстановить работоспособность платформы без каких-либо потерь. Замечательное качество технологии блокчейн.
К сожалению, это же самое свойство вызывает определенные трудности в реализации децентрализованных приложений. Поскольку в реестр изменения могут вносить все, то кто гарантирует достоверность хранимой в нем информации? Напомню, что мы имеем дело с системой, в которой между участниками нет доверия. В централизованных системах консенсус обеспечивается каким-нибудь внешним арбитром, например, головным сервером или банком, если речь идет о платежной системе. Участники могут не доверять друг другу, но в отношении надежности арбитра у них никаких сомнений нет. В полностью децентрализованной системе мы сталкиваемся с так называемой задачей византийских генералов. И в 2008 году ее решение было предложено Сатоши Накомото, а в 2009 реализовано в первой в истории криптовалюте – Биткоин. Собственно, с этого момента и появился блокчейн как отдельное направление.
В сети Биткоин гарантом консенсуса между участниками выступает математика, а точнее криптография. Вот уж действительно случай, когда можно говорить о полной беспристрастности и объективности.
Чтобы разобраться в этом вопросе, прежде всего нужно вспомнить, что из себя представляет распределенный реестр. Почему мы говорим о технологии block chain? На самом деле именно с цепочкой блоков мы и имеем дело. Если речь идет о биткоине, то в реестре хранится информация об эмиссии биткоинов и передаче имеющихся в сети биткоинов между ее участниками. Каждая такая одиночная операция называется транзакцией. Объединять в цепочку транзакции – не самый оптимальный вариант. Поэтому еще пока не проведенные, ждущие своей очереди транзакции предварительно сводятся в блоки. Т.е. перевод с одного кошелька на другой в биткоин-сети не актуализируется сразу же после выполнения операции. Сформированная транзакция передается в сеть и какое-то время считается не завершенной. Только после включения в распределенный реестр нового блока с данной транзакцией можно говорить о завершении перевода (на самом деле рекомендуется дождаться формирования последовательности еще из пяти-шести блоков).
Занимаются сборкой блоков особые участники сети Биткоин – майнеры. Как только блок сформирован (параметры сети Биткоин (числа Target и Nonce см. Таблицу 1.2) настраиваются так чтобы это происходило в среднем один раз в десять минут) он распространяется по сети для подтверждения другими майнерами. И в случае успеха добавляется в конец цепочки.
Prev_block | Хеш предыдущего блока |
Merkle_root | Хеш транзакций, включенных в блок |
Timestamp | Временная метка (дата и время создания этого блока) |
Bits | Число, называемое Target – значение, автоматически задаваемое самой биткоин-сетью, регулирующее сложность задачи майнинга. Подстраивается таким образом, чтобы на вычисление параметров нового блока уходило в среднем 10 минут |
Nonce | Изменяемый майнером параметр в попытках сформировать такой блок, чтобы его Хеш отвечал заданному формату - был меньше чем target (при каждой новой попытке просто увеличивается на 1, начиная с 0) |
Txn_count | Количество транзакций в блоке |
Далее идет список транзакций |
Очень важный аспект формирования цепочки заключается в том, что каждый новый блок рассчитывается на основании предыдущего, а фактически – всей сформированной на данной момент цепочки. Добиться этого помогает криптографии, а точнее хеш-функции. Делается это примерно так. Блок включает в себя список проверенных майнером транзакций (а вдруг кто-то отправил на адрес своего приятеля несуществующие биткоины) и заголовок, содержащий небольшой набор служебных полей. Важнейшим среди которых является ссылка на хеш предыдущего блока. Для вновь созданного блока вычисляется его хеш. При этом учитываются и включенные в блок новые транзакции (на самом деле для каждой транзакции предварительно считается ее хеш) и заголовок блока. Таким образом, в каждом новом блоке, присутствует вся предыстория блокчейна, включая самый первый блок (блок генезиса, в котором первые в истории 50 биткоинов Сатоши Накомото отправил сам себе). Благодаря этому практически невозможно выдернуть какой-нибудь блок из середины и вставить вместо него свой – содержащий неправильные транзакции. Хеш следующего блока тут же престанет соответствовать цепочке, поскольку в момент создания он рассчитывался, исходя из других предпосылок. Факт подмены, благодаря прозрачности распределенного реестра, тут же будет обнаружен другими участниками. Более того, не получится заменить не только "атакованный" блок, но и всю последующую за ним цепочку блоков, чтобы подмена в новом реестре не обнаруживалась. Злоумышленнику просто на это не хватит вычислительной мощности и времени. Вспомните про десять минут, через которые появится следующий новый блок. Оказывается, что формирование блока в биткоин-сети чрезвычайно затратная и сложная операция. На самом деле майнеру недостаточно просто вычислить хеш собранного блока. Этот хеш должен удовлетворять определенным условиям. Для хеширования в биткоине предусмотрен алгоритм SHA-256. Т.е., результирующий хеш будет представлять число - последовательность 256 бит. Представьте себе, что в системе принимаются хеши только определенного вида, например, первые 72 бита обязательно должны быть нулевыми. Для того чтобы варьировать хеши в заголовке предусмотрен специальный числовой параметр (Nonce), меняя который майнер и пытается достичь желаемого результата. Каким-то образом вычислить нужное значение параметра (фактически взломать алгоритм SHA-256) за такой короткий промежуток времени практически невозможно. Счастливчик, которому удалось решить эту сложную задачу, отправляет "проект" нового блока другим майнерам и в качестве доказательства своих честных намерений и проделанной большой работы (proof of work) предъявляет подобранное значение параметра - Nonce. Остальным майнерам остается только проверить действительно ли при таком заявленном параметре Nonce получается хеш блока заданного формата (меньше чем число Target). Эта задача существенно проще и не требует много времени и вычислительных затрат. Именно поэтому говорят, что консенсус в сети Биткоин основан на доказательстве работы. В качестве которого выступает подобранный майнером параметр Nonce для собранного им нового блока-кандидата.
Следует отметить, что в других криптовалютах консенсус может достигаться иным путем. Известны подходы, основанные на подтверждении доли, подтверждении важности и др. В любом из этих случаев затея подделать реестр оказывается экономически нецелесообразной.
Высотой блока называют общее число блоков в цепочке, выстроенных после блока генезиса. Высота блокчейна – высота самого последнего блока в распределенном реестре.
В задачу пиринговых сетей входит обеспечение надежных коммуникаций всех участников сети друг с другом напрямую, минуя всевозможные центральные серверы. Работая поверх стека протоколов TCP/IP, такая сеть обеспечивает транспортировку транзакций, блоков-кандидатов и самого распределенного реестра. Фактически именно одноранговая peer-to-peer – сеть является технологической основой для достижения децентрализации блокчейна. Сетевые сервисы, использующие идею равноправия участников известны достаточно давно. Наибольшую популярность приобрели частично децентрализованные файлообменные системы, такие как eDonkey, KaZaA, BitTorrent и др. Но появление платформы Биткоин безусловно заставило посмотреть на сети peer-to-peer с иной точи зрения, и вдохнуло новую жизнь в эти протоколы.
И последний аспект сети Биткоин, который мы затронем в самом вначале, это транзакции. Собственно, как раз, ради их хранения и создавался реестр. Каждая транзакция – совершенно прозрачная, т.е. доступная всем участникам сети Биткоин запись о передачи некоторой суммы BTC с одного кошелька на другой. На самом деле в этой системе даже привычное для нас понятие счета отсутствует. Т.е. нельзя просто взять и посмотреть в блокчейне какую-нибудь ячейку и определить сколько на Вашем счету электронных денег. Для решения этой задачи программное обеспечение кошелька должно пробежаться по всему реестру в поиске транзакций, в которых в качестве получателя перевода указывался Ваш кошелек (на самом деле достаточно просмотреть только так называемый UTXO pool – список (множество) еще нерастраченных или незакрытых выходов транзакций).
Итак, что у нас входит в транзакцию?
- Список входов. Количество входов может быть любым, но большим нуля разумеется. Каждый вход указывает откуда мы берем биткоины, т.е. выход одной из ранее проведенных в реестре транзакций.
- Список выходов. Выходов тоже может быть несколько, на каждом указывается некоторая сумма. Каждый из выходов однозначно ассоциируется с кошельком получателя данной суммы.
- И конечно же, каждая транзакция подписывается электронной подписью участника сети, осуществляющего данный перевод.
Поясним процедуру перевода на примере (см. Рисунок 1.3).
Предположим владелец кошелька Марина собирается перевести владельцу кошелька Сергею 5 биткоинов. На всякий случай упомянем, что криптовалюта биткоин – анонимная. Т.е., кто такая эта Марина или Сергей никто не знает. По крайней мере в сети Биткоин такой информации (персональных данных) точно нет.
Сначала Марина должна решить с выходов каких транзакций из реестра она должна взять эти биткоины. Есть ограничение – нельзя использовать только некоторую часть суммы. Вся наличность, имеющаяся на выбранном выходе транзакции, должна тратиться полностью. Ну и конечно эти деньги не должны быть уже потрачены, т.е. мы говорим только о тех выходах транзакций, которые входят в UTXO pool (конечно кошелек не позволит потратить несуществующие деньги, мошенникам придется идти другим путем). Пусть Марина владеет выходами двух транзакций с достаточной суммой биткоинов. С помощью программного обеспечения кошелька она создает транзакцию с двумя входами, ссылающимися на два ассоциированных с Мариной выхода из множества нерастраченных выходов. Соответственно, первый выход транзакции предназначен Сергею (и после включения транзакции в блокчейн только Сергей сможет распоряжаться этими 5 биткоинами), а второй выход достанется снова Марине. Поскольку к оплате было привлечено больше биткоинов, чем требовалось, следовательно, необходимо сформировать сдачу.
Внимательный читатель легко обнаружит пропажу 0,1 BTC или 10 000 000 сатоши. Куда же делась эта десятая часть биткоина? Ошибки никакой нет. Сумма входов транзакции может превышать сумму ее выходов (но не наоборот). Разница будет выдана майнеру, который эту транзакцию обработает, в качестве вознаграждения. И если Вы хотите, чтобы Ваш платеж прошел поскорее (транзакция оказалась в блокчейне), предусмотрите достойную награду майнерам. Будьте уверены, что за транзакцию с таким хорошим вознаграждением они возьмутся в первую очередь.
![](image2.jpeg)
Сатоши – минимальная, неделимая цифровая единица ценности в платформе Биткоин. 1 BTC = 100 000 000 сатоши.
Виды транзакций
Самая распространенная форма транзакции – конечно же простой платеж с одного адреса на другой, включающая второй выход с целью начисления сдачи отправителю (один вход и два выхода).
Другим распространенным видом платежа является транзакция, объединяющая несколько входов в один выход (аналог обмена множества мелких монет на одну крупную купюру в реальной жизни).
Довольно часто выполняется по сути обратная по смыслу финансовая операция - распределение средств одного входа по нескольким выходам, содержащим адреса нескольких разных получателей. Таким образом удобно расплачиваться с группой сотрудников, выполнивших определенный объем работы.
Разница между полными нодами и облегченными кошельками
Нода (от англ. Node — узел) – любая вычислительная система, которая подключается к сети Биткоин, используя протоколы пиринговой сети, позволяющие нодам коммуницировать друг с другом и распространять по сети транзакции и блоки.
Ноды, полностью реализующие все правила платформы Биткоин, называют полными. Такие узлы полностью синхронизированы с блокчейном. Следовательно, они обязаны хранить полный набор файлов распределенного реестра (более 230 GB). Именно полные ноды составляют основу платформы Биткоин.
Полные ноды загружают каждый блок и транзакцию и проверяют их на основе правил консенсуса сети Биткоин. Например, эмиссия ограничена определенным количеством биткойнов, транзакции должны иметь стандартный формат и содержать корректные подписи для соответствующих выходов, исключение двойных трат и так далее.
Если в рамках проверки будет выявлена нелегитимность транзакции или блока, то нода признает такую структуру данных недействительной, даже если остальные узлы вынесут положительный вердикт. Более того, нода на определенное время перестанет принимать данные от источника - инициатора запрещенной операции. Таким образом полные ноды, благодаря своей полной беспристрастности и скрупулезности, обеспечивают высокую степень безопасности платформы.
Облегченные ноды таким качеством не обладают. В основном они доверяют результатам работы майнеров и полностью на них полагаются. Как результат – на некоторое время их можно ввести в заблуждение в отношении легитимности некоторого блока или транзакции. Полные ноды являются единственным надежным способом обеспечения максимальной безопасности криптомонет. Обладая полным объемом информации о блокчейне, они способны гарантировать неукоснительное соблюдение всех правил.
Не стоит путать сетевые роли полной ноды и узла майнера. Само по себе владение полной нодой и участие в проверке транзакций не принесет Вам дохода. Однако, именно от стабильности работы полных нод зависит стабильность платформы Биткоин.
Большинство приложений кошельков поддерживает небольшую базу данных неизрасходованных выходов транзакций – пул UTXO, заблокированных закрытыми ключами кошелька. Ноды кошельков, работающие в режиме полных нод, на самом деле содержат копию каждого неизрасходованного выхода. Благодаря этому кошелек способен не только выбирать входы для транзакций, но и оперативно проверять корректность входов транзакций. Однако, поскольку хранение всего блокчейна требует значительных ресурсов, большинство пользователей используют облегченные кошельки, отслеживающие только неизрасходованные выходы конкретного пользователя.
Впрочем, у облегченных кошельков всегда имеется возможность запросить всю необходимую информацию у платформы Биткоин, используя API различных провайдеров, или послав JSON RPC-запрос программному обеспечению полной ноды.
Пользователи платформы постоянно создают новые транзакции, отражающие движение денежных средств. В сети они добавляются к временному пулу непроверенных транзакций, поддерживаемому каждой нодой. В процессе формирования блока каждый майнер обращается к этому пулу, выбирает необходимое число транзакций и рассчитывает остальные параметры блока.
Краткие итоги
Системы распределенного реестра в федеральной программе "Цифровая экономика Российской Федерации" включены в число основных сквозных цифровых технологий, призванных повысить конкурентоспособность России на глобальном рынке. Широта и возможности применения технологии блокчейн видятся весьма значительными, с ее помощью можно трансформировать целые сектора коммерческой, общественной или государственной деятельности. Например, устранить посредников в сложившихся цепочках хозяйственных связей. При этом на пути развития децентрализованных приложений возникает множество разнообразных препятствий.
Распределенные системы могут быть как централизованными, так и децентрализованными. Причем, приложения, использующие блокчейн и пиринговые технологии, могут быть распределенными и децентрализованными одновременно.
В сети Биткоин гарантом консенсуса между участниками выступает криптография. Важнейшим аспектом формирования блокчейна является то, что каждый новый блок рассчитывается на основе предыдущего, а фактически – всей сформированной на данной момент цепочки блоков. Занимаются сборкой блоков особые участники сети Биткоин–майнеры.
В реестре сети Биткоин хранится информация об эмиссии биткоинов и передаче ранее выпущенных биткоинов между ее участниками. Каждая такая одиночная операция называется транзакцией. В состав транзакции в сети Биткоин входят список входов и список выходов. Каждая транзакция подписывается электронной подписью владельца средств. UTXO pool – список (множество) еще нерастраченных выходов транзакций.
Минимальной, неделимой цифровой единицей ценности в платформе Биткоин является сатоши. 1 BTC = 100 000 000 сатоши.
Нода – любая вычислительная система, которая подключается к сети Биткоин, используя протоколы пиринговой сети, что позволяет узлам коммуницировать друг с другом и распространять по сети транзакции и блоки. Ноды, полностью реализующие все правила платформы Биткоин, включая хранение полного набора файлов распределенного реестра на локальном носителе, называют полными. Именно полные ноды, наряду с майнерами, составляют основу платформы Биткоин.