- знакомство
- блокчейн
- работа
- технологии
- блокчейн
- внедрение
- снг
Не в таком уж далеком прошлом большинство людей даже предположить не могли, что жизнь возможна без таких привычных и необходимых атрибутов, как нотариусы, банки, регуляторы, регистраторы и т. п. Ведь убери все это, и наступит хаос!
Но с появлением и популяризацией технологии blockchain стало приходить понимание того, что возможен другой формат обмена важной информацией, денежными средствами, документами – без посредников, напрямую между заинтересованными сторонами.
И все же, только немногие понимают настоящую суть и ценность этой технологии, и не без оснований считают ее величайшим прорывом. Большинство же относятся ко всему, связанному с данным вопросом, с определенной опаской и считает, что ни к чему, кроме криптовалют, блокчейн отношения не имеет, поэтому и интересоваться этой технологией нужно только поклонникам цифровых денег.
Так это или нет, и в чем же суть данной технологии, мы и будем рассматривать сегодня. И постараемся сделать это максимально понятно и доступно.
Технология Блокчейн — что это?
По своей сути Blockchain напоминает картотеку, в которую строго последовательно добавляются новые записи обо всех произведенных действиях. Только здесь эта информация надежно зашифрована, исключая постороннее вмешательство.
А чтобы еще больше обезопасить «картотеку», ее многократно копируют и размещают в разных местах. Тогда даже при утере одной копии, ее легко восстановить из остальных. А кроме того, новая вносимая информация, пройдя проверку на правильность, тоже мгновенно добавляется в копии. Подробнее о принципе работы смотрите в соответствующем разделе.
Посмотрите интересную лекцию о технологии Blockchain от основателя платформы Ethereum Виталика Бутерина:
Правовое регулирование в России и Мире
За 10-летнюю историю существования технологии Блокчейн, она по-прежнему является нерегулируемой, а криптовалюты, функционирующие на его основе, по-прежнему остаются неофициальным платежным средством в РФ и во всем остальном мире.
Биткоин, самую важную и популярную цифровую валюту, хоронили не раз. Только за 2020 год в СМИ 90 раз выходили новости о смерти битка.
Однако, развитие отрасли становится все более упорядоченным, разрабатываются юридические аспекты применения технологии блокчейн и способы глобального регулирования блокчейна и криптовалют.
Основную активность в этом направлении проявляет FATF — международная организация, занимающаяся созданием стандартов в сфере борьбы с отмыванием денег и финансированием терроризма. Разработки FATF могут стать основой глобального регулирования отрасли блокчейна, поэтому в сентябре 2018 года в России было принято решение отложить утверждение законопроектов о криптовалютах и дождаться рекомендаций FATF, на основе которых будет разработано законодательство.
Таким образом, поначалу нерегулируемая отрасль блокчейна перейдет на стадию взросления, и произойдет это уже совсем скоро.
По мнению экспертов, в 2020-х годах решится судьба большинства существующих блокчейн-проектов и технологии в целом.
История возникновения Blockchain
Блокчейн впервые был применен в системе Биткоин, изобретенной в 2008 году, хотя первые наработки появились за 17 лет до этого. Авторство первоначальной идеи приписывают У.С.Шторнетту и С.Хаберу, которые в 1991 проводили эксперименты с хранением файлов на закрепленном путем криптографии цепочке блоков, а также пробовали объединять эти файлы в блоки.
Однако до 2008 особого интереса изобретение не вызывало. Так что именно Сатоши Накамото, создав Bitcoin, подтолкнул технологию к активному развитию, а следом подхватила масса других программистов.
Виды блокчейн
Сейчас пользователи могут строить разные виды блокчейнов:
- Публичные, открытые блокчейны;
- Приватные, закрытые блокчейны;
- Использовать комбинированные схемы;
- Ниже найдете сравнение разных типов систем.
Публичный
Public или Permissionless blockchain позволяет любому пользователю сети стать простым пользователем или майнером, а доверие между участниками строится на консенсусе PoW (Proof-of-Work). Администрирует такой блокчейн cамо сообщество.
Приватный
Private или Private Permissioned blockchain — это закрытый блокчейн, доступ к которому имеет только определенная группа участников (организаций или людей). Такие блокчейны строятся для бизнеса и корпоративных целей — увеличения общей выгоды и эффективности. Их надежность обеспечивается общими целями участников и алгоритмами консенсуса PoS (Proof-of-Stake) и BFT (Byzantine fault tolerance).
Приватные блокчейн-сети являются централизованными и управляемыми, поскольку контролируются своими создателями.
Пользователь не может просто так стать их участником: для этого ему нужно выполнить определенные условия, установленные организаторами. А майнить новые блоки в таких системах может четко установленный сертифицированный круг лиц.
Принцип работы технологии
В переводе с английского языка Blockchain означает «цепь блоков». Это некая база данных, представляющая собой именно неразрывную цепочку из блоков и расположенная одновременно на тысячах устройств. В цепь постоянно добавляются новые блоки, содержащие информацию о произведенных за последнее время действиях (называемых транзакциями) и заголовок.
Под транзакциями понимают любые действия, совершаемые участниками сети. Это отправка денежных средств, установление прав собственности, покупка виртуального контента и пр.
Видео о том, как работает Блокчейн от биржи Binance:
Когда транзакция только создана, она ставится в очередь (мемпул) и ждет там, пока ее правильность подтвердят путем добавления в блок. Сформированный блок проверяется остальными участниками системы, и, если нарушений не найдено, встает в конец цепочки. После этого момента его уже невозможно изменить.
Кроме новой информации, в блоке хранятся зашифрованные данные о предшествующих блоках. База автоматически обновляется на всех устройствах, находящихся в составе системы, после чего валидаторы (то есть майнеры) переходят к генерации следующего блока.
Ключевые принципы технологии блокчейн:
- Распределенность и децентрализация;
- Высокий уровень безопасности и защиты от мошеннических действий;
- Прозрачность;
- Неизменность внесенных данных.
Блокчейн обещает решить множество проблем оборота денег в современном мире. Ведь по сути это открытая распределенная бухгалтерская книга, умеющая регулярно и высокоэффективно вносить в себя информацию о совершаемых пользователями действиях.
Как это работает?
Будем, как и положено, двигаться от более простого к более сложному. Потому что объяснить, что собой представляет рассматриваемая технология, было куда проще, чем, не злоупотребляя специальными терминами и понятиями, рассказать о том, как она работает. Ну, попробуем:
- Общее понятие. Итак, мы с вами пришли к выводу, что блокчейн это база данных. Состоит она из множества блоков (blockchain – цепочка блоков), одновременно сохраняется на тысячах компьютеров и характеризуется такими особенностями, как децентрализованность, распределенность, прозрачность, защищенность от постороннего вмешательства, конфиденциальность и невозможность изменить записанную информацию. Устройства, на которых хранится информация, не имеют подключения к единому серверу.
Блоки представляют собой список упорядоченных записей, их количество постоянно растет. То есть появляются новые блоки, содержащие ссылки на предыдущие и временные метки. Шифрование данных обеспечивает доступ к изменению информации только непосредственно владельцу, то есть человеку, имеющему закрытый ключ, а также за счет шифрования решается вопрос синхронизации копий цепи у всех ее участников.
Попробуем объяснить на примере из жизни. Допустим, мы имеем дело с историей болезни, естественно с ее цифровым вариантом. Любую запись в такой истории можно считать звеном (блоком) блокчейн-цепи, она имеет временную метку, то есть отмечено, какого числа и в какое время она была сделана. Понятно, что корректировать записанное в истории категорически запрещается, поскольку это может исказить картину болезни и привести к неправильному лечению. Другими словами, нельзя допустить, чтобы кто-либо мог вносить в документ какие-то изменения по своему усмотрению, возможно, с целью навредить больному. Поэтому единственные люди, имеющие доступ к этому документу, это лечащий врач и пациент, каждый из которых имеет свой секретный ключ. Если в этом возникнет необходимость, то доступ, конечно, может быть открыт и другим людям (например, какому-нибудь узкому специалисту, приглашенному для консультации), но это возможно лишь при передаче этим людям ключа одним из владельцев.
- Децентрализация и распределение данных. В нашей жизни много значимой информации, которая находится где-то на хранении. Женились вы, купили машину или дом, родились у вас дети – обо всех этих событиях есть записи на сервере какого-то государственного или частного учреждения. Хранятся они централизовано. А нет такой централизованной базы, которую нельзя было бы взломать, чтобы внести в данные изменения.
В blockchain подход принципиально другой. Информация хранится не в одном определенном месте, а распределена по огромному количеству компьютеров, расположенных в самых разных уголках планеты. Система существует, пока хоть один из этих компов работает, а вариант, когда все они одновременно вышли из строя, согласитесь, выглядит почти нереальным.
- Безопасность. За безопасность можно не беспокоиться. Во-первых, в отличие от централизованного хранения, здесь нужно взломать все компьютеры сети, чтобы произвести изменения, а для этого нужны такие вычислительные мощности, что «овчинка» себя явно не окупит. А, во-вторых, на пути фальсификаторов есть еще одно серьезное препятствие в виде шифра и цифровой подписи, в которой используются открытый и закрытый (секретный) ключи.
- Открытость и анонимность. С одной стороны, база открыта всем желающим, и каждый может ознакомиться с содержимым блоков. К примеру, узнать, что был осуществлен перевод на сумму в 100 тысяч долларов. Но вот узнать, кто именно перевел эту сумму и кому она адресована – нельзя, это конфиденциальная информация, раскрыть которую могут только сами участники обмена.
Применение технологии Блокчейн
С Blockchain мы можем вообразить себе мир, где все сделки производятся на цифровом уровне и хранятся в прозрачных общедоступных базах данных. Они защищены от подделки или удаления. В таком мире каждый процесс и каждая сделка, каждый платеж и каждая задача обзавелись бы цифровой подписью, доступной для идентификации и проверки. Больше не понадобятся посредники, такие как банкиры и брокеры. Огромный потенциал блокчейна заключается именно в возможности для отдельных лиц и организаций свободно взаимодействовать напрямую между собой.
Только ленивый не слышал о том, что Blockchain произведет революцию в сфере бизнеса и перевернет всю мировую экономику с ног на голову. Однако в этом есть не только плюсы.
В первую очередь опасения вызывают вопросы безопасности. Известно о многих случаях хакерских атак на блокчейн-проекты. И виновата в этом не технология, а ее неправильная или неполноценная реализация. К сожалению, из-за молодости самой идеи, пока очень мало блокчейн разработчиков, тем более с опытом.
Мировое внедрение блокчейна разом обрушит десятки барьеров – организационных, управленческих, технических, социальных. Поэтому каждый шаг должен быть осмысленным.
Что мешает широкому внедрению blockchain?
Есть несколько препятствий, тормозящих этот процесс:
- Во-первых, это необходимость постоянно поддерживать надлежащий (а значит, очень высокий) уровень безопасности системы, для чего необходимы постоянные сложные вычисления в больших объемах. Чтобы их осуществлять, нужно обеспечить наличие огромной ресурсной базы. В случае с BTC проблема была решена привлечением ресурсов пользователей за определенные комиссионные отчисления.
- Второй момент заключается в том, что ресурсы должны быть распределены и ни в коем случае не должны попадать под управление какого-то единого центра или группы, так как в противном случае они могут быть использованы этой группой в своих, не факт, что хороших, целях.
- И третий фактор противодействия – банальные «палки в колеса» со стороны тех, кто на внедрении прозрачной и децентрализованной технологии теряет заработок или возможность влиять на события не совсем честными способами.
Практическое использование
Наиболее известное применение Blockchain – это криптовалюта. Но на самом деле диапазон не ограничивается только финансовыми инструментами. Несколько примеров эффективного использования технологии:
- Распределенное хранение файлов. Облачное хранение информации сейчас очень актуально, многие пользуются Google или Яндекс дисками. Но на основе технологии блокчейн есть возможность хранить данные в p2p сети на распределенной основе. Так файлы будут значительно лучше защищены от хакерских атак. Работа осуществляется по принципу торрентов. Пример такой системы –
- Идентификация. На основе блокчейн любая компания может разработать свой личный тест для цифровой идентификации пользователей. Таким образом ID сможет заменить логины и пароли для различных сервисов, а также с его помощью можно будет оставлять электронную подпись. Проекты, уже представившие такие наработки: ShoCard, Keybase, Onename.
- Верификация и регистрация. Таким же образом, как сохраняются транзакции в сети Биткоин, может сохранятся и любая другая информация. Образуется надежное хранилище данных, свободное от управления единым центром и передачи третьим лицам. Подобные услуги есть у Factom, Tierion. А потенциал безграничен: ведение больничной документации, подтверждение авторских прав, регистрация транспортных средств, запись актов гражданских состояний (таких как рождение, бракосочетание) и многое-многое другое.
- Использование смарт-контрактов. В блокчейне Эфириум активно применяется технология смарт-контрактов – программ, автоматически отслеживающих выполнение условий сделки и закрывающихся в нужный момент. В сочетании с блокчейном такой функционал подходит для множества видов сделок купли-продажи, сдачи в аренду, оплаты интеллектуальной собственности. На практике к использованию такой схемы обратилась английская певица Imogen Heap.
- Отслеживание доставки, определение происхождения. Любой производственный процесс связан с доставкой сырья или продукции из разных мест. Образуется цепочка поставок, зачастую сложная для отслеживания. Блокчейн помогает и здесь. Некоторые компании (Everledger, Provenance) уже пользуются им для проверки происхождения сырья. Это существенно уменьшает шанс использование подделки.
- Услуги нотариуса. Blockchain позволяет заметно облегчить и удешевить нотариальные услуги. С его помощью можно без проблем формировать неизменные записи и отслеживать подлинность любого документа. Подобным образом организована работа компаний Blockverify и Stampery, которые занимаются проверкой многих вещей – от фармацевтических препаратов до e-mail сообщений.
- Интернет-голосования. Одна из проблем открытых голосований в Сети – отсутствие должного уровня анонимности. Другой нюанс – возможность зайти с другого аккаунта или IP-адреса и проголосовать повторно, то есть имеет место накрутка голосов. Блокчейн разом решает обе проблемы, а кроме того, исключает подтасовку голосов владельцами ресурса. Метод уже был использован датской партией Liberal Alliance в процессе внутренних выборов (2014 год).
- Независимый рынок электроэнергии. Есть возможность разработать систему, в рамках которой каждый отдельно взятый дом сможет вырабатывать свое электричество, а излишки пускать на продажу. В мире уже довольно много зданий, которые обзавелись собственными возобновляемыми источниками энергии вместо того, чтобы зависеть от услуг электрической компании.
- Страхование. Blockchain + смарт-контракты + IoT (интернет вещей) = революция в сфере страхования. Достаточно зарегистрировать договор в форме смарт-контракта и поместить его в блокчейн, чтобы он исполнялся автоматически при наличии заданных условий. Так дома, машины и другие вещи, подключенные к сети посредством IoT, смогут сами определить случившееся с ними происшествие, проанализировать и произвести нужную выплату страхователю.
- Усовершенствование работы интернета. В текущий момент все DNS-серверы планеты контролируются правительством и крупными компаниями, поэтому крайне уязвимы перед лицом цензуры, шпионажа, злоупотребления властью. Экспериментальный проект NameCoin пробует разворачивать собственную децентрализованную версию DNS, свободную от какого-либо управления.
Blockchain
Данный текст будет являться новой главой для учебного пособия по защите информации кафедры радиотехники и систем управления МФТИ (ГУ). Полностью учебник доступен на github. На хабре я же планирую выкладывать новые «большие» куски, во-первых, чтобы собрать полезные комментарии и замечания, во-вторых, дать сообществу больше обзорного материала по полезным и интересным темам.
Когда у вас есть знания о том, что такое криптографически стойкая хеш-функция, понять, что такое blockchain («цепочка блоков») очень просто. Blockchain – это последовательный набор блоков (или же, в более общем случае, ориентированный граф), каждый следующий блок в котором включает в качестве хешируемой информации значение хеш-функции от предыдущего блока.
Технология blockchain используется для организации журналов транзакций, при этом под транзакцией может пониматься что угодно: финансовая транзакция (перевод между счетами), аудит событий аутентификации и авторизации, записи о выполненных ТО и ТУ автомобилей. При этом событие считается случившимся, если запись о нём включена в журнал.
В таких системах есть три группы действующих лиц:
- источники событий (транзакций)
- источники блоков (фиксаторы транзакций)
- получатели (читатели) блоков и зафиксированных транзакций.
В зависимости от реализации эти группы могут пересекаться. В системах типа BitCoin, например, все участники распределённой системы могут выполнять все три функции. Хотя за создание блоков (фиксацию транзакций) обычно отвечают выделенные вычислительные мощности, а управляющими их участников называют майнерами (см. раздел про децентрализованный blockchain далее).
Основное требование к таким журналам таково:
- Невозможность модификации журнала: после добавления транзакции в журнал должно быть невозможно её оттуда удалить или изменить.
Для того чтобы понять, как можно выполнить требование на запрет модификации, стоит разобраться со следующими вопросами:
- Каким образом гарантируется, что внутри блока нельзя поменять информацию?
- Каким образом система гарантирует, что уже существующую цепочку блоков нельзя перегенерировать, тем самым исправив в них информацию?
Ответ на первый вопрос прост: нужно снабдить каждый блок хеш-суммой от его содержимого. И эту хеш-сумму включить в качестве дополнительной полезной информации (тоже хешируемой) в следующий блок. Тогда для того, чтобы поменять что-то в блоке без разрушения доверия клиентов к нему, нужно будет это сделать таким образом, чтобы хеш-сумма от блока не поменялась. А это как раз практически невозможно, если у нас используется криптографически стойкая хеш-функция. Либо поменять в том числе и хеш-сумму блока. Но тогда придётся менять и значение этой хеш-суммы в следующем блоке. А это потребует изменений, в свою очередь, в хеш-сумме всего второго блока, а потом и в третьем, и так далее. Получается, что для того, чтобы поменять информацию в одном из блоков, нужно будет перегенерировать всю цепочку блоков, начиная с модифицируемого. Можно ли это сделать?
Тут нужно ответить на вопрос, как в подобных системах защищаются от возможности перегенерации цепочки блоков. Мы рассмотрим три варианта систем:
- централизованный с доверенным центром
- централизованный с недоверенным центром
- децентрализованный вариант с использованием доказательства работы
Централизованный blockchain с доверенным центром
Если у нас есть доверенный центр, то мы просто поручаем ему через определённый промежуток времени (или же через определённый набор транзакций) формировать новый блок, снабжая его не только хеш-суммой, но и своей электронной подписью. Каждый клиент системы имеет возможность проверить, что все блоки в цепочке сгенерированы доверенным центром и никем иным. В предположении, что доверенный центр не скомпрометирован, возможности модификации журнала злоумышленником нет.
Использование технологии blockchain в этом случае является избыточным. Если у нас есть доверенный центр, можно просто обращаться к нему с целью подписать каждую транзакцию, добавив к ней время и порядковый номер. Номер обеспечивает порядок и невозможность добавления (удаления) транзакций из цепочки, электронная подпись доверенного центра – невозможность модификации конкретных транзакций.
Централизованный blockchain с недоверенным центром
Интересен случай, когда выделенный центр не является доверенным. Точнее, не является полностью доверенным. Мы ему доверяем в плане фиксации транзакций в журнале, но хотим быть уверенными, что выделенный центр не перегенерирует всю цепочку блоков, удалив из неё ненужные ему более транзакции или добавив нужные.
Для этого можно использовать, например, следующие два метода.
- Первый метод с использованием дополнительного доверенного хранилища. После создания очередного блока центр должен отправить в доверенное и независимое от данного центра хранилище хеш-код от нового блока. Доверенное хранилище не должно принимать никаких изменений к хеш-кодам уже созданных блоков. В качестве такого хранилища можно использовать и децентрализованную базу данных системы, если таковая присутствует. Размер хранимой информации может быть небольшим по сравнению с общим объёмом журнала.
- Второй возможный метод состоит в дополнении каждого блока меткой времени, сгенерированной доверенным центром временных меток. Такая метка должна содержать время генерации метки и электронную подпись центра, вычисленную на основании хеш-кода блока и времени метки. В случае, если «недоверенный» центр захочет перегенерировать часть цепочки блоков, будет наблюдаться разрыв в метках времени. Стоит отметить, что этот метод не гарантирует, что «недоверенный» центр не будет генерировать сразу две цепочки блоков, дополняя их корректными метками времени, а потом не подменит одну другой.
Децентрализованный blockchain
Наибольший интерес для нас (и – наименьший для компаний, продающих blockchain-решения) представляет децентрализованная система blockchain без выделенных центров генерации блоков. Каждый участник может взять набор транзакций, ожидающих включения в журнал, и сформировать новый блок. Более того, в системах типа BitCoin такой участник (будем его назвать «майнером», от англ. to mine — копать) ещё и получит премию в виде определённой суммы и/или комиссионных от принятых в блок транзакций.
Но нельзя просто так взять и сформировать блок в децентрализованных системах. Надёжность таких систем основывается именно на том, что новый блок нельзя сформировать быстрее (в среднем) чем за определённое время. Например, за 10 минут (BitCoin). Это обеспечивается механизмом, который получил название доказательство работы.
Механизм основывается на следующей идее. Пусть есть криптографически стойкая хэш-функция и задан некоторый параметр (от англ. target
– цель). , где — размер выхода хэш-функции в битах. Корректным новым блоком blockchain-сеть будет признавать только такой, значение хэш-суммы которого меньше текущего заданного параметра . В этом случае алгоритм работы майнера выглядит следующий образом:
- собрать из пула незафиксированных транзакций те, которые поместятся в 1 блок (1 мегабайт для сети Bitcoin) и имеют максимальную комиссию (решить задачу о рюкзаке)
- добавить в блок информацию о предыдущем блоке;
- добавить в блок информацию о себе (как об авторе блока, кому начислять комиссии и бонусы за блок);
- установить в некоторое значение, например, ;
- выполнять в цикле: обновить значение ;
- посчитать значение ;
- если , добавить в блок и считать блок сформированным, иначе — повторить цикл.
Для каждой итерации цикла вероятность получить корректный блок равна . Так как обычно мало, то майнерам нужно сделать большое количество итераций цикла, чтобы найти нужный . При этом только один (обычно — первый) из найденных блоков будет считаться корректным. Чем больше вычислительная мощность конкретного майнера, тем больше вероятность, что именно он первым сумеет найти нужный .
Зная суммарную вычислительную мощность blockchain-сети, участники могут договориться о таком механизме изменения параметра , чтобы время генерации нового корректного блока было примерно заданное время. Например, в сети Bitcoin параметр пересчитывается каждые 2020 блоков таким образом, чтобы среднее время генерации блока было 10 минут. Это позволяет адаптировать сеть к изменению количества участников, их вычислительных мощностей и к появлению новых механизмов вычисления хэш-функций.
Кроме задания параметра можно оперировать другими величинами, так или иначе относящимися к мощности вычислений.
- Hashrate
— количество хешей, которые считают за единицы времени конкретный майнер или сеть в целом. Например, в ноябре 2020 года общий
hashrate
для сети Bitcoin составлял примерно хэшей в секунду. - Difficulty
— сложность поиска корректного блока, выражаемая как , где — некоторая константа сложности, а
t
— текущая цель (англ.
target
). В отличие от параметра
t
, который падает с ростом вычислительной мощности сети,
d
изменяется вместе с
hashrate
, что делает его более простым для восприятия и анализа человеком.
В случае примерно одновременной генерации следующего блока двумя и более майнерами (когда информация о новом блоке публикуется вторым майнером до того, как ему придёт информация о новом блоке от первого) в направленном графе блоков происходит разветвление. Далее каждый из майнеров выбирает один из новых блоков (например – какой первый увидели) и пытается сгенерировать новый блок на основе выбранного, продолжая «ответвление» в графе. В конце-концов одна из двух таких цепочек становится длиннее (та, которую выбрало большее число майнеров), и именно она признаётся основной.
В случае нормального поведения системы на включение конкретных транзакций в блоки это влияет мало, так как каждый из добросовестных майнеров следует одному и тому же алгоритму включения транзакций в блок (например, в сети BitCoin – алгоритму максимизации комиссии за блок). Однако можно предположить, что какой-нибудь злоумышленник захочет «модерировать» распределённый blockchain, включая или не включая в блоки транзакции по своему выбору. Предположим, что доля вычислительных ресурсов злоумышленника (направленных на генерацию нового блока) равна ( 0% < < 50%). В этом случае каждый следующий сгенерированный блок с вероятностью будет сгенерирована мощностями злоумышленника. Это позволит ему включать в блоки те транзакции, которые другие майнеры включать не захотели.
Но позволит ли это злоумышленнику не включать что-то в цепочку транзакций? Нет. Потому что после его блока с вероятностью будет следовать блок «обычного» майнера, который с радостью (пропорциональной комиссии-награде) включит все транзакции в свой блок.
Однако ситуация меняется, если мощности злоумышленника составляют более 50% от мощности сети. В этом случае, если после блока злоумышленника был с вероятностью сгенерирован «обычный» блок, злоумышленник его может просто проигнорировать и продолжать генерировать новые блоки, как будто он единственный майнер в сети. Тогда если среднее время генерации одного блока всеми мощностями , то за время злоумышленник сможет сгенерировать , а легальные пользователи блоков, . Даже если с некоторой вероятностью легальные пользователи сгенерируют 2 блока быстрее, чем злоумышленник один, последний всё равно «догонит и перегонит» «легальную» цепочку примерно за время . Так как в blockchain есть договоренность, что за текущее состояние сети принимается наиболее длинная цепочка, именно цепочка злоумышленника всегда будет восприниматься правильной. Получается, что злоумышленник сможет по своему желанию включать или не включать транзакции в цепочки.
Правда, пользоваться чужими деньгами злоумышленник всё равно не сможет – так как все блоки транзакций проверяются на внутреннюю непротиворечивость и корректность всех включённых в блок транзакций.
Кроме концепции «доказательство работы» используются и другие. Например, в подходе «доказательство доли владения» (англ. proof of stake
), используемой в сетях Etherium и EmerCoin, вероятность генерации блока пропорциональна количеству средств на счетах потенциальных создателей нового блока. Это намного более энергоэффективно по сравнению с PoW, и, кроме того, связывает ответственность за надёжность и корректность генерации новых блоков с размером капитала (чем больше у нас средств, тем меньше мы хотим подвергать опасности систему). С другой стороны, это даёт дополнительную мотивацию концентрировать больше капитала в одних руках, что может привести к централизации системы.
Механизм внесения изменений в протокол
Любая система должна развиваться. Но у децентрализованных систем нельзя просто «включить один рубильник» и заставить участников системы работать по новому – иначе систему нельзя назвать полностью децентрализованной. Механизмы и способы внесения изменений могут выглядеть на первый взгляд нетривиально. Например:
- апологеты системы предлагают изменения в правилах работы
- авторы ПО вносят изменения в программный код, позволяя сделать две вещи: указать участникам системы, что они поддерживают новое изменение
- поддержать новое изменение
- участники системы скачивают новую версию и выставляют в новых блоках транзакций (или самих транзакциях) сигнальные флаги, показывающие их намерение поддержать изменение
- если к определённой дате определённое число блоков содержат сигнальный флаг (обратите внимание на привязку числа голосов к числу сгенерированных блоков), то изменение считается принятым, и большая (по числу новых блоков) часть участников системы в определённую дату включают эти изменения
- те участники, которые не приняли изменения, или приняли изменения вопреки отсутствию согласия на них большей части участников, в худшем случае начнут генерировать свою цепочку блоков, только её признавая корректной. Основную цепочку блоков они будут считать неверно сгенерированной. По факту это приведёт к дублированию (разветвлению, форку) системы, когда в какую-то дату вместо одного журнала транзакций появляется два, ведущимися разными людьми. Это журналы совпадают до определённой даты, после чего в них начинаются расхождение.
Подводя итоги, Сатоши Накамото (псевдоним), автор технологий blockchain и bitcoin, сумел предложить работающий децентрализованный механизм, в котором и само поведение системы, и изменения к этой системе проходят через явный или неявный механизм поиска консенсуса участников. Для получения контроля над системой в целом злоумышленнику придётся получить контроль как минимум над 50% всех мощностей системы (в случае PoW), а без этого можно лишь попытаться ограничить возможность использования системы конкретными участниками.
Однако созданная технология не лишена недостатков. Существуют оценки, согласно которым использование метода PoW для системы bitcoin приводит к затратам энергии, сравнимой с потреблением электричества целыми городами или странами. Есть проблемы и с поиском консенсуса – сложный механизм внесения изменений, как считают некоторые эксперты, может привести к проблемам роста (например, из-за ограниченности числа транзакций в блоке), и, в будущем, к отказу использования механизма как устаревшего и не отвечающего будущим задачам.
Хотелось бы узнать у сообщества, про какие ещё технологии стоит рассказывать студентам. С одной стороны, им обязательно надо рассказать про базовые вещи — классическую криптографию и криптографию на открытых ключах. Но хочется дать понятие и про современные вещи, которые, возможно, не станут лишним грузом знаний и через пять-десять лет. С текущим содержание учебной программы можно ознакомиться здесь.
История изменений
- 2017-11-17: Добавлено указание лицензии CC-BY
- 2017-11-18: Уточнёна и расширена информация про механизм proof-of-work и связанные определения
Использование технологии Блокчейн в криптовалютах
В сфере криптовалют Blockchain помогает грамотно распределять цифровые активы между людьми или компаниями. Чтобы в полной мере понять его роль, давай представим, что Bitcoin работает не на блокчейне.
Допустим, у пользователя есть монета с уникальным ID. Она привязана к своему владельцу. Далее человек захотел пойти и купить за 1 BTC телевизор в магазине, принимающем оплату криптой. А еще – дать 1 BTC в долг своему другу. Однако на счету у него лишь одна монета. Теоретически, он мог бы перечислить ее и магазину, и другу. Такой вид мошенничества называется «двойными тратами».
В случае с блокчейном такое событие исключено – блоки собирают записи о каждой проведенной транзакции, и дальнейшее использование уникального денежного актива возможно только после закрытия блока.
Пока блокчейн не массово распространен, мы вынуждены для проверки транзакций полагаться на банки и других финансовых посредников. Это сопряжено с большими комиссиями и замедлением проведения операций.
Плюсы и минусы технологии
Блокчейн-технология, конечно, не совершенна, она имеет свои достоинства и недостатки, с которыми мы вас сейчас и познакомим.
Плюсы:
- Система децентрализована, то есть не привязана к единому центральному серверу. Все данные распределены среди пользователей-участников, что делает ее взлом практически невозможным. Если хакеру даже удастся внести изменения в одну или несколько копий, то остальные ее, в любом случае, отвергнут. А «ломать» больше половины участников сети вряд ли под силу самому крутому взломщику.
- Каждый пользователь имеет полноценную зашифрованную копию базы данных. Для достижения консенсуса копии синхронизируются.
- Благодаря полной прозрачности системы, информация о проведенных транзакциях доступна всем желающим.
- База на основе блокчейн-технологии пополняется информацией в виде новых блоков, но добавляются они только при согласии всех участников.
Минусы:
- Здесь главная проблема – масштабируемость. Количество транзакций, обеспечиваемое blockchain за секунду, на сегодня очень мало по сравнению с теми же платежными системами. И база с каждым днем «весит» все больше. Эти проблемы решаются, вернее, предпринимаются попытки их решить, но пока особенных успехов нет.
- Еще один минус, это возможность «атаки 51%» (сосредоточение более половины вычислительных мощностей, условно говоря, в одних руках). Но этот «минус», скорее, из области невероятного – слишком уж огромные ресурсы нужно задействовать для осуществления такого предприятия.
Как функционирует Блокчейн Биткоина, Эфириума
Рассмотрим более детально процесс работы блокчейна Bitcoin, Ethereum, а также функцию умных контрактов.
Blockchain Bitcoin
Для примера возьмем короткий блокчейн из пяти блоков. Каждый следующий хранит в себе информацию о хэше предшествующего. Предположим, что в третий по счету блок внесены изменения. Тогда он, как и все последующие, стал недействительным. Следовательно, беспрепятственно внести изменения мы можем только в блок №5. Чтобы он после этого стал действительным, необходимо подобрать соответствующий хэш. Для этого нужен майнинг.
Таким образом Blockchain оказывает сопротивление внедрению посторонней информации. Со временем цепочка удлиняется, и с каждым новым блоком будет всё труднее изменить старые блоки.
Блокчейн Биткоина сформирован из узлов, каждый из которых являет собой точную копию всей цепи. Чтобы определить, верна ли наша копия цепочки, нужно произвести сравнение с другими узлами. В соответствии со всеми принципами демократии, каких одинаковых узлов будет больше, тот вариант и верен.
Блокчейн Ethereum
Блокчейн Эфира по сути представляет собой систему состоянию транзакций. Такое понятие существует в информатике, и подразумевает систему, которая анализирует входящие данные и на основе последней единицы информации совершает преобразование в новое состояние.
Все процессы в так называемой машине состояний Ethereum на старте находятся в «первоначальном состоянии». Это состояние до того момента, как в сети начнутся какие-либо действия и транзакции. Тогда первоначальное состояние меняется на «конечное», и, взглянув на конечное состояние в каждый момент времени, можно определить текущее положение сети Эфира.
Общее состояние Ethereum включает в себя миллионы транзакций, объединенных в блоки. Блокчейн строится по тому же принципу, что и в Биткоин. Корректность транзакций подтверждается путем майнинга. Стать майнером может любое устройство, подключенное к сети. Тот, чьему устройству удалось решить математическое вычисление, подобрав хэш, получает награду в виде цифровых монет ETH.
Как стать Blockchain-разработчиком
Для работы с Blockchain нужно знание какого-либо типизированного языка программирования. А также — навыки в области защиты информации, понимание принципов ООП, структур данных, знание основных шаблонов проектирования, опыт оптимизации и рефакторинга собственного кода. Кроме этого окажутся полезными навыки веб-программирования, так как у программ, взаимодействующих с Blockchain, чаще всего веб-интерфейс. Будет плюсом понимание асимметричной криптографии на основе эллиптических кривых.
Разобраться с сутью технологии Blockchain поможет статья «Bitcoin: A Peer-to-Peer Electronic Cash System» by Satoshi Nakamoto, а также работы Nick Szabo: «Advances in Distributed Security» и «Formalizing and Securing Relationships on Public Networks». О «криптовалютной» стороне технологии можно почитать «Cryptocash, cryptocurrencies, and cryptocontracts» by Neal Koblitz and Alfred Menezes.
«Как стать Blockchain-разработчиком? Прежде всего, выберите платформу, под которую интересно разрабатывать (EOS, Ethereum, Neo, Nem). Затем почитайте White Paper, Yellow Paper выбранной платформы, разберитесь, как в ней работают смарт-контракты (для Ethereum, например, разобраться с EVM). Наконец, изучите язык программирования под выбранную платформу (например, для Ethereum — Solidity, для EOS — C++)» (Игорь Ермаков, Blockchain Engineer в Dev-Pro).
«Я советую начать с Solidity — языка программирования для Ethereum. Напишите тестовый проект, который будет содержать код на Blockchain и подключение к нему через какую-нибудь веб-страницу. Что касается источников информации, я советую изучить подборки The Crowdsourced Ethereum Reading List и Crypto Canon» (Алекс Кучер, CTO Titanium).
«Рекомендую читать техническую документацию той технологии Blockchain, под которую предполагается разработка. Например, для разработки под Bitcoin необходимо изучить документацию и следить за перечнем изменений в технологии. Для разработки под Ethereum есть мощный справочный ресурс по используемому там языку смарт-контрактов. Следить за новинками и учебными материалами помогут группы и каналы в мессенджерах. Я читаю Solidity Club и Cryptology Club» (Blockchain Developer в BlockSoftLab).
Темы: Blockchain, карьера, Карьера в IT, работа
Кошелек Блокчейн
Под понятием «Блокчейн кошелёк» в большинстве случаев имеется ввиду онлайн сервис blockchain.com. Он позволяет хранить и совершать операции с криптовалютой: Bitcoin, Ethereum, Stellar, Bitcoin Cash. Также, он является обозревателем блокчейн-блоков сети.
Вы можете найти информацию о любом адресе, проверить статус транзакции, узнать комиссии, сложность майнинга, курсе криптовалюты, хэшрейт и т.д.
Сервис Blockchain зарегистрирован в Люксембурге и работает с 2011 года. За всё время число созданных криптовалютных кошельков превысило 30+ млн.
Блокчейн не является Биткоином
Криптовалюта является виртуальной валютой. Количество подобных денег ограничено, потому что рассчитано на большой промежуток времени.
В итоге прибыль, полученную на криптовалюте, регулируют за счёт повышения или снижения сложности процесса покупки, например, биткоина.
Каждый онлайн-пользователь может приобрести свои биткоины при их покупке в криптовалютном обменнике или на биткоин-бирже либо получить их самостоятельно, на компьютере, который оснащён специально созданной для этого системой. Но сам биткоин является спекулятивной валютой. Возник он в 2009 г., но сегодня курс подобной электронной валюты вырос в 1000 раз и не перестаёт повышаться и сегодня ускоренными темпами.
Смарт-контракты
Смарт-контракт – это протокол, служащий для помощи в реализации сделок и их проверки. Умные контракты представляют собой удобный способ совершения безопасных сделок без привлечения посредников. В смарт-контракте содержится подробная информация об условиях договора и запрограммировано автоматическое выполнение. Транзакции, совершенные при помощи этой технологии, необратимы.
Впервые идея увидела свет еще в 1994 году, придумал ее криптограф-программист Ник Сабо. Он сформулировал основные принципы работы, однако на тот момент мир были технически не готов к их использованию. Все изменилось с изобретением блокчейна. Биткоин впервые объединил две технологии, заставив смарт-контракты работать в рамках цепочки блоков. Однако в Bitcoin функционал контрактов довольно сильно урезан, так что можно сказать, что полноценно они были введены в эксплуатацию только с появлением Ethereum.
Принцип работы можно сравнить с функционированием торговых автоматов. Смарт-контракты действуют на основе заданных инструкций. Сначала задействованные денежные активы и условия сделки размещаются в блокчейне, а его копии распространяются по узлам. Как только сработал триггер, контракт выполняется, а программа автоматически контролирует исполнение обязательств.
Преимущества технологии:
- Безопасность. Программа зашифровывается и распространяется по узлам. Это гарантирует защиту от утери или нежеланной корректировки.
- Скорость и экономичность. Посредники не нужны, всё происходит на автомате.
- Стандартизация. Благодаря гибкости настройки смарт-контрактов, существует возможность выбрать вариант, идеально подходящий потребностям компании или проекта.
Есть и минусы:
- Человеческий фактор. Программы пишут люди, а им свойственно ошибаться. Некоторые недостатки могут проявиться не сразу, а в самый ответственный момент, и привести к потере денежных средств.
- Отсутствие четкого правового статуса. По состоянию на 2020 год ни в одной стране мира смарт-контракты не регулируются официально.
- Дороговизна внедрения. Умные контракты создают профессиональные программисты, специализирующиеся на этой теме. А такие есть не в каждом штате. Нанимать же сотрудника на аутсорс обойдется в ощутимую сумму.
Надежность и безопасность
Одним из главных преимуществ блокчейна являются прозрачные, но при этом полностью безопасные транзакции.
Все сделки на базе блокчейна отличаются открытостью: цепочка транзакций дублируется, и вся информация хранится в зашифрованном виде у каждого участника сети.
Но при этом блокчейн является децентрализованным: у него нет единого командного центра, взломав который можно уничтожить или подменить данные. Выход из строя нескольких звеньев никак не скажется на работе блокчейн-цепи: она будет работать до тех пор, пока функционирует хотя бы 1 компьютер.
Надежность блокчейна
Все данные, хранящиеся в блокчейне, защищены криптографическими ключами, состоящим из случайной последовательности букв и цифр. Используются два вида криптографических ключей: открытый и закрытый. Первый генерируется при создании нового блока и находится в открытом доступе. Второй служит для расшифровки блока и является секретной информацией.
У кого есть доступ к закрытому ключу, тот получит содержимое блока. ✅
Таким образом, за перемещением средств могут наблюдать все участники сделки, но доступ к средствам имеют только пользователи с необходимыми правами.
Преимущества и недостатки технологии Blockchain
Специалисты считают блокчейн самой перспективной на сегодняшний день технологией. Основные плюсы технологии блокчейн:
- Децентрализация хранения данных. Blockchain хранится сразу у всех участников сети, что сводит к нулю вероятность взлома или похищения.
- Все данные прозрачны, благодаря чему каждый желающий может отследить информацию о переводе средств, чтобы убедиться, действительно ли они отправлены.
- Отсутствие возможности возврата транзакции. Плательщик не имеет возможности заморозить или отозвать платеж.
- Отсутствие посредников и излишних комиссий за их работу.
Тем не менее, на текущий момент блокчейн не идеален. Его еще предстоит дорабатывать, и над этим усердно трудятся программисты из многих стран мира. Наиболее заметные минусы:
- Проблемы с масштабируемостью. Когда база данных становится слишком большой, то проверка информации занимает много времени. Соответственно, платежи проходят намного медленнее. В Биткоине сейчас среднее время передачи платежа составляет 4-5 часов, а максимальное – 2 суток. При том что еще недавно это время не превышало 10 минут.
- Статус «вне закона» для большинства государств. Использовать технологию приходится на свой страх и риск. Хотя намечается явный прогресс, ряд стран уже с интересом поглядывает на перспективы блокчейна в тех или иных сферах.
- Как и со смарт-контрактам, высокая стоимость внедрения.
Перечисленные недостатки не критичны и вполне поправимы, на это нужно лишь время.
Почему blockchain-технология так важна?
Поделиться информацией сейчас не проблема, интерактивная интернет-платформа открывает для этого широкие возможности, и вы легко можете мгновенно передать свои мысли и чувства друзьям, живущим на другом конце света. А вот с материальными ценностями (деньгами) ситуация другая. Конечно, систем перевода денег в сети предостаточно, и появились они давным-давно. Но использовать их можно лишь путем интеграции с кредиткой или вашим счетом в банке, то есть опять-таки прибегая к услугам централизованной финансовой системы в лице банков.
Рассматриваемая нами технология позволяет это посредническое звено исключить из цепочки. Ведь здесь можно и зарегистрировать сделку, и заключить контракт, и заверить подлинность того или иного лица. Если на эти «рельсы» перевести, хотя бы, какую-то часть наиболее крупного по капитализации рынка финуслуг, то эффективность этих самых услуг возрастет многократно, хотя, не спорим, многие связи в этой сфере будут разорваны.
Очень заманчивые перспективы, выходящие за рамки финансовой темы, обещает заключение контрактов на базе блокчейна. Ведь в блоках может храниться любая цифровая информация, в том числе и компьютерные коды, что позволяет разрабатывать так называемые «умные» контракты. Например, код получает необходимую информацию из внешних источников (это может быть все что угодно, от прогноза погоды до цен на акции) и составляет договор, регистрация которого будет автоматической в случае выполнения оговоренных условий. Сфера применения таких «умных» контрактов (смарт-контрактов), практически, неограниченна.
Вернемся, хотя бы, к нашему медицинскому примеру. Ведь владелец закрытого ключа может передать его не человеку, а какому-то медицинскому аппарату, например, тому, что отслеживает показатели содержания сахара в крови больного. Этот аппарат, отслеживая соответствующие параметры, может передавать их другому устройству, отвечающему за введение инсулина. И как только возникнет необходимость, исходя из запрограммированных условий, пациенту будет введено лекарство, чтобы нормализовать уровень сахара.
Можно использовать такой подход и для предотвращения фальсификаций во время голосования, и для защиты интеллектуальной собственности, и в нотариальном деле, и в логистике, и много где еще.
Сейчас уже вовсю проводятся эксперименты с внедрением данной технологии в самые разные области нашей жизни. Нельзя сказать, что все так уж безоблачно в этом деле, но в силу своих очевидных преимуществ технология блокчейн просто не может не быть востребованной, а значит, ее время стремительно приближается.
Перспективы развития технологии
Несмотря на то, что с момента появления первого блокчейна прошло уже целое десятилетие, эта технология во многом все еще остается экспериментальной. Пока сложно с уверенностью прогнозировать, как блокчейн будет развиваться дальше, но какие-то четкие контуры уже вырисовываются.
Пути развития блокчейна
Сейчас выделяют несколько путей развития блокчейн технологий:
- Блокчейн станет технологией будущего и основой для новой финансовой и политической системы;
- Блокчейн станет широко распространенным протоколом, таким как HTTP для интернета;
- Блокчейн останется обычной технологией баз данных для решения определенного круга задач.
Противники блокчейна, в основном представляющие банки или государственные структуры, напротив, заявляют, что криптовалюты и блокчейн через несколько лет исчезнут, и будущее останется за стандартизированными и регулируемыми распределенными реестрами.
Однако, нужно помнить, что технология относительно новая, и это одновременно дает ей энергию для развития, но также вызывает недоверие со стороны общества. Неоднозначное отношение к Блокчейну связано и с неверным пониманием технологии: для большинства пользователей все еще сложно воспринимать информацию о ней. И это нормально для инновационной технологии. Поэтому сказать точно, как будет развиваться отрасль, невозможно.
Работы по стабилизации и усовершенствованию системы предстоит много, но ясно одно — с появлением блокчейна и криптовалют финансовая система уже никогда не будет прежней. ✅ И сферы внедрения блокчейна в будущем будут только расширяться.