Что конкретно входит в понятие «блокчейн»
Вопрос, что понимать под блокчейном, не праздный. Даже блокчейн-специалисты выдадут разные определения и разные границы технологии, чего уж говорить о людях, далеких от технологий. А сейчас блокчейн обсуждается даже политиками и большими инвесторами, им-то каково?
Предупреждаю сразу, статья философская с пространными рассуждениями и демагогией. Хотите конкретики, читайте другую. Хотите разобраться — читайте третью.
Блокчейн с точки зрения максималистовНачнем с простой точки зрения. Блокчейн — это все технологии, которые используются или будут использоваться в криптовалютах. Включая еще не изобретенные и не реализованные.
Что входит в понятие криптовалют, отходит на второй план. Чтобы не отвлекаться, для простоты мы будем считать, что криптовалюты — это валюты из списка https://coinmarketcap.com/currencies/.
Топ криптовалют по капитализации (Источник)
С одной стороны, такое определение удобно, потому что позволяет делать любые заявления. Например:
Позволяет ли блокчейн лучше проводить генетические и медицинские исследования? Ну, не мешает точно.
С другой же стороны, такое максималистское определение позволяет многое утверждать про блокчейн, но не позволяет вести предметный разговор и утверждать что-то конкретное. Посмотрите на примеры:
- Решения на блокчейне не масштабируются.
- Решения на блокчейне медленнее централизованных аналогов.
- Решения на блокчейне не требуют доверия между участниками.
- Решения на блокчейне открыты и валидируемы.
- Блокчейн представляет собой цепочку блоков.
Продолжим не менее простой точкой зрения. Блокчейн — это просто база данных с инкрементальной записью. Все. Если мы умеем только дописывать в конец или выкидывать с конца и писать заново, то у нас блокчейн. Выкидывать по логике можно всегда, просто реальные блокчейн-решения стараются пользоваться такой возможностью только в исключительных случаях (например, в случае с 92 млрд биткойнов). Ни распределенности, ни консенсуса, ни блоков, ни ссылок на предыдущие блоки — ничего не требуется.
Это определение удобно тем, что на таком блокчейне действительно работают все известные мне криптовалюты.
Но такое определение еще более абсурдно и бесполезно, чем предыдущее. Более того, такой «блокчейн» известен лет 100 и называется стеком.
Базовая комплектацияЗакончим с вырожденными определениями, составим минимальный разумный пакет того, что смогут назвать блокчейном многие специалисты.
Блокчейн предполагает, что:
1. Данные оформлены блоками, что бы из себя эти блоки ни представляли. 2. Блок либо является genesis-блоком, либо ссылается на предыдущий. a. Блоки дописываются в конец. b. Выкидывать блоки в рамках нормальной работы запрещено. 3. Блоки летают в коммуникационной среде независимо — можно загрузить произвольный блок. 4. Блокчейн читается как минимум двумя участниками. 5. В блокчейн пишет как минимум один участник. 6. Все пишущие достигают консенсуса — блоки соответствуют единому набору правил. a. Очевидное следствие — блокчейн един для всех участников после достижения консенсуса. b. Если в сети наблюдается софт-форк, то «едиными» правилами, очевидно, являются более жесткие.
Шпаргалка по понятию софт-форка. Источник
Есть что добавить?
А теперь посмотрим, что осталось за бортом такого определения.
- В понятие «блокчейн» не входят принципы достижения консенсуса: Proof-of-Work, Proof-of-Stake, Proof-of-Authority и другие. А ведь в Proof-of-Work как раз заключается львиная доля инновационности биткойна, родоначальника блокчейна.
- В понятие «блокчейн» не входит принцип децентрализованности. В вырожденном случае выходит, что есть сервер, он пишет в базу, один. Остальные могут читать и проверять, а могут и не проверять.
- В понятие «блокчейн» не входит принцип открытости: он не обязан быть доступным на чтение широкому кругу лиц, тем более на запись.
- В понятие «блокчейн» не входит принцип распределения доверия: участники могут быть исключительно доверенными.
- В понятие «блокчейн» не входит защита от злонамеренных участников: ее может и не быть.
- В понятие «блокчейн» никак не включена криптография. Вряд ли без нее удастся обойтись, но на каком этапе и в каком виде она будет применяться, не определено.
Кстати, такая конфетка называется частным блокчейном (private/permissioned), и именно на такие блокчейны сейчас делают ставку некоторые компании (и даже госструктуры). Это частный случай давно известных распределенных реестров (не путать с распределенной базой данных), но не каждый распределенный реестр, очевидно, является блокчейном.
Продвинутая комплектация — «настоящий» блокчейнНо чтобы блокчейну можно было приписать его популярные преимущества (а заодно и недостатки), необходимо дописывать в определение новые условия.
Сначала определим свойства «настоящего» блокчейна:
- Децентрализованный. Это дает неблокируемость/устойчивость, но заодно забирает эффективность (пропускная способность на единицу железа) и масштабируемость (рост пропускной способности с ростом количества железа).
- Открытый на чтение. Это дает валидируемость, но заодно и забирает конфиденциальность (которую можно прикрутить сверху обратно).
- Открытый на запись. Это дает доступность, но и делает запись платной. Как правило, плата символическая, но этого хватает, чтобы резко ограничить список пишущих.
- Неизменяемый. Это дает защиту от фальсификации, но и приводит к замусоренности (чего только не пишут в публичные блокчейны).
- С валютой. Это восхитительное свойство особенно ценится в блокчейн-решениях. Оно дает финансовые возможности, но взамен вносит неопределенность в правовой статус проекта. А заодно открывает и риски кибербезопасности.
- Доверяемый. Не требует репутации участников.
Для получения описанных свойств дополнительно включим в состав «настоящего» блокчейна следующее:
- Каждый блок, кроме начального, содержит криптографический хеш предыдущего, а не просто ссылается, как в базовой комплектации.
- Консенсус между участниками достигается таким способом, чтобы минимизировать риск переписывания базы меньшинством, как правило, Proof-of-Work или вариации Proof-of-Stake. И это, на мой взгляд, самое важное. Понятие меньшинства определяется выбранным способом.
- Либо используется одноранговая сеть, либо право стать мастер-нодой формально есть у каждого желающего.
- За участие в обеспечении бесперебойной работы сети (формирование корректных блоков) полагается награда в каком-то виде. И поэтому, вероятно, в каждом открытом блокчейне есть свои «койны».
- Каждый участник обладает парой ключей и в том или ином виде удостоверяет свои намерения по записи в блокчейн.
- За валидацию корректности базы награда не полагается. Участники делают это ради собственной безопасности либо не делают.
- Каждый участник имеет право послать в сеть транзакцию, удовлетворяющую правилам сети, и рассчитывать, что транзакция будет включена в блокчейн за разумное время при разумной оплате.
Есть еще такое удобное понятие — «блокчейн-технологии». Это те технологии, которые блокчейном вовсе не являются, но имеют к нему непосредственное отношение — либо являются надстройками, либо улучшениями обычного блокчейна (в любом его определении). Половина из них вполне может использоваться и без блокчейна, просто потребности такой не возникает.
Например, Lightning Network — это привычный клиринг, но только построенный на доверии, полученном за счет уже развернутого блокчейна.
Другой пример — миксер. Отмывка «грязных» денег посредством смешивания с «чистыми» известна давно, но применительно к криптовалютам преобразилась и стала отдельной технологией с разными вариантами реализации.
Кольцевые подписи или доказательства с нулевым разглашением — известные криптографические протоколы, которые, будучи применены в криптовалютной сфере, тоже становятся «блокчейн-технологиями».
Понятие «блокчейн-технологии» по сути означает то же самое, что максималистский подход к определению блокчейна в первом разделе. Но только мне это понятие нравится больше — это более корректно. Если упоминаются блокчейн-технологии, то это еще не значит, что блокчейн там вообще есть.