Хабрахабр

Вам не нужен блокчейн: 8 популярных юзкейсов и почему они не работают

image

С середины 2017 я занимаюсь аудитами безопасности смарт-контрактов и повидал всякого. Порой диву даёшься, чего только люди ни сделают «на блокчейне». И кочуют из стартапа в стартап вместе с ней. В отдельную категорию я бы выделил «применения блокчейна», которые выглядят логичными и полезными, но в основе содержат проблему. После прочтения этого текста вы будете знать, с каких вопросов стоит начать, если вам как разработчику/клиенту/инвестору предложат такое «применение блокчейна». Здесь я рассмотрю ряд таких примеров, опишу проблемы и неработающие способы решения.

Дисклеймеры

  • Я описываю юзкейсы и проблемы, которые возникают на первом шаге. Я не утверждаю, что эти проблемы нельзя решить. Но при рассмотрении подобной системы стоит понимать, как создатели предлагают решать соответствующую проблему.
  • Словосочетание «применение блокчейна» режет глаз. Тем не менее, здесь и далее я буду писать его без кавычек, хотя до сих пор до конца не уверен, что возможны другие применения блокчейна помимо денег, то есть кроме Bitcoin.

1. Supply Chain Management

Предлагается следующее решение: устанавливаем в грузовик датчик, который регулярно публикует температуру в холодильнике в блокчейн. Пусть мы заказали доставку товара и перевозчик обязуется по дороге соблюдать условия хранения, например, поддерживать низкую температуру. Таким образом, можно проследить историю температуры и убедиться, что условия хранения были соблюдены на всём пути.

Поскольку датчик находится в физическом мире, которым управляет не код, а люди, датчик легко обмануть. Проблема здесь не в блокчейне, а в датчике. Например, поместить в небольшой холодильник только датчик, а на охлаждение груза не тратиться.

image

Глобально я бы сформулировал эту проблему так:

Блокчейн — это не Internet of Things (IOT).

Блокчейн обеспечивает неизменность занесённых в него данных, но не может обеспечить их истинность. Эта формулировка нам понадобится ещё не раз. Тогда вся необходимая информация есть внутри блокчейна, и система может верифицировать корректность данных: например, что на адресе достаточно средств для совершения конкретной транзакции. Единственное исключение — случай, когда вся система оперирует on-chain, то есть когда блокчейн не пытается заглядывать в физический мир.

На этот счёт рекомендую статью «Оракулы, или почему смарт-контракты всё ещё не изменили мир?» (Александр Дрыгин). Приложения, которые пытаются поставлять в блокчейн данные снаружи, получили название «оракулы». И до тех пор, пока решение не будет найдено, попытки реализации Supply Chain Management на блокчейне вроде примера выше — это попытки изобрести самолёт до изобретения двигателя. Проблема оракулов пока что не решена.

Рекомендую саму статью и в первую очередь эту схемку: Пример с холодильником я взял из статьи «Do you need blockchain» (Karl Wüst, Arthur Gervais).

image

2. Гарантия подлинности товара

Но поскольку внешне он выглядит иначе и предлагается другими людьми и под другим соусом, считаю важным рассмотреть его отдельно. Юзкейс, принципиально не отличающийся от предыдущего.

Мы привязываем нашу бутылку вина к токену на блокчейне, печатаем на ней QR-код. Пускай мы производим некоторый редкий/дорогой товар — часы, вино, автомобили — и хотим дать клиенту возможность убедиться, что попавший к нему в руки экземпляр действительно произведён на нашем заводе. Тот, кто держит бутылку в руках, может зайти на сайт и проследить её путь от самого завода, тем самым убедившись в её подлинности. Каждая передача бутылки, от завода перевозчику, далее магазину и клиенту, подтверждается транзакцией на блокчейне.

А всё почему? Всю систему ломает простой как валенок эксплойт: продавец-злоумышленник полностью копирует бутылку, наливает туда вино попроще и копию с токеном продаёт клиенту, а оригинал — тому, кого не интересует токен, или вообще выпивает сам. Правильно, потому что

Блокчейн — это не IoT.

Бутылка — это физический объект, а значит, при должном старании её в отличие от цифровой подписи можно подделать.

3. Подлинность диплома университета

По сути в этом случае мы говорим про цифровую подпись, чтобы подтвердить подлинность, плюс timestamping, чтобы исключить выпуск диплома задним числом. Здесь уже речь идёт об истинности утверждения («Петя окончил МГУ»), а не о подлинности физического объекта.

Но не стоит её путать с блокчейном: ЦП существовала и приносила пользу задолго до него. Цифровая подпись (ЦП) — это отлично, некоторые даже считают асимметричную криптографию величайшим изобретением 20-го века. Сейчас стало популярным продавать цифровую подпись под видом блокчейна, так что будьте начеку — возможно, вам нужна только ЦП.

Блокчейн — это и есть самый надёжный способ timestamping'а. Timestamping — это уже ближе. Только вот городить новые решения тут не нужно: достаточно положить хеш данных на блокчейн Bitcoin'а, надёжней и проще некуда.

Да. Хорошая ли идея класть хеш диплома выпускника на блокчейн Bitcoin'а, подписывая его цифровыми подписями нескольких профессоров? Важно только потом эту систему не испортить централизованным способом проверки, через сайт или приложение университета, например, ведь именно он станет самым слабым звеном.

4. Голосование

Говоря о голосовании на блокчейне, в первую очередь нужно понять, какую проблему мы хотим решить.

И главная сложность здесь в том, откуда взять и как хранить приватный ключ. Проблема подделки голоса/аутентификации. Для этого нужен не блокчейн, а цифровая подпись. Но кроме генерации ключа на своём устройстве важно, чтобы ПО, которым генерируется ключ, было open source и хорошо проаудированным; железо было получено из третьего источника (самый простой вариант — смартфон); пользователь умел обращаться с приватным ключом. Не буду объяснять, почему любая система, в которой ключ генерируется не на устройстве конечного владельца, является broken by design.

Возможно, как раз Bitcoin нас постепенно научит обращаться с ключами: одно дело потерять пароль к странице в соцсети или даже к голосу, совсем другое — к собственным деньгам. Первые две проблемы может решить разработчик системы, третья гораздо сложнее.

И да, привязка публичного ключа к конкретному человеку, если это требуется в нашем голосовании, — это снова IoT.

image

Правда, здесь публичности может получиться многовато: если мы видим необезличенный голос каждого человека, мы можем на этого человека давить, чтобы он проголосовал, как нам надо. Проблема публичности подсчёта голосов. Для этих целей в первом приближении подходят смарт-контракты а-ля Ethereum: всем видно, за какого кандидата отдано сколько голосов. Но вот задача более сложная — чтобы даже сам владелец не мог доказать, что проголосовал за определённого кандидата, — пока не решена, а значит, и давление возможно. Можно построить систему так, что каждый конкретный голос не будет виден никому, кроме его владельца.

UPD: коллеги говорят, что решена, и решение называется uncoercible encryption.

И, опять же, задача проверки того, не выдано ли дополнительных голосов несуществующим людям, — это IoT.

5. Доказательство авторства

Он фотографирует её, хеш фотографии кладёт в блокчейн, а саму фотографию выкладывает в блог. Художник A написал картину и хочет зафиксировать её авторство на блокчейне. После этого художнику B, который будет утверждать, что картину на самом деле написал B, наш художник A предъявит фотографию и хеш, тем самым доказав, что он заявил её авторство ещё давно.

Две проблемы:

  • Художник B может сказать, что не знал о блокчейне, поэтому не зафиксировал там авторство. То есть чтобы приносить пользу, такая процедура должна стать общепринятой.
  • Художник B может проникнуть в мастерскую художника A, сфотографировать картину и выложить хеш на блокчейн раньше, чем художник A.

Потому что Пример с картиной можно распространить на любое другое произведение, эти проблемы сохранятся.

Блокчейн — это не IoT.

Главная особенность в том, что тут достаточно блокчейна Bitcoin, новое решение не нужно. В целом же этот юзкейс не лишён смысла.

Примечание: здесь я говорю о доказательстве авторства, а не об интеллектуальной собственности, потому что саму её концепцию считаю несостоятельной: «Against Intellectual Property» (Stephan Kinsella).

6. Земельный кадастр

Тут тоже возникают как минимум две проблемы. Предлагалось также привязать к токенам на блокчейне владение землёй.

Регулятор требует регистрировать сделки по передаче земли у него и, в отличие от случая с часами, всегда может применить силу, физически придя на вашу землю. Действия регулятора. Если бутылку/часы/машину по факту можно передать P2P (из рук в руки), то регистрация владения землёй на сегодняшний день привязана к регулятору. Если на блокчейне будет записано, что землёй владеете вы, это будет не соответствовать действительности. Регулятор может настаивать на передаче земли, и что тогда происходит с записью на блокчейне? Это особенно важно в свете того, что в ряде случаев именно от махинаций регулятора (или конкретных чиновников) с помощью блокчейна и предлагается защищаться. Если регулятор может сделать собственную запись, переписав вашу, то блокчейн не работает.

image

Если снова регулятор или его контрагент, то такая система не будет децентрализованной. Централизация разработки и поддержки. Кто будет разрабатывать такую систему и поддерживать ноды? Децентрализованный протокол с централизованной разработкой — это централизованный протокол (привет, Ethereum!).

Кроме того, каждый раз, когда нам предлагают блокчейн, имеет смысл задавать себе вопрос:

Что это даёт мне?
Можем ли мы использовать не блокчейн, а распределённую базу данных?

Кроме того, специалистов для разработки и интеграции базы данных найти гораздо проще, чем специалистов по блокчейну. Если можем, то смысла использовать блокчейн нет: он будет работать медленнее и требовать для тех же задач больше ресурсов. Стоить они будут гораздо дешевле, а проверить результат работы и поддерживать систему будет проще.

Это, впрочем, не значит, что не надо работать над её надёжностью и открытостью — см. С учётом описанных выше проблем возьмусь утверждать, что в нынешних реалиях распределённая база данных для земельного кадастра подходит лучше. раздел «Блокчейн как повод».

Bitfury объявила о запуске в Грузии земельного кадастра на блокчейне на базе фреймворка Exonum, и собирается сделать то же самое в Украине и на Мальдивах. У этого юзкейса даже как будто есть живые имплементации. Хотя вроде бы кейс мощный, хвастайся, привлекай новых клиентов. Тем не менее, никаких технических подробностей мне найти не удалось.

7. Межбанковские переводы

Есть набор не доверяющих друг другу сторон, и нет доверенной третьей стороны. Этот кейс проходит по схеме из «Do you need blockchain». Поэтому тут наш выбор — приватный блокчейн, записывать данные в который могут только банки. Здесь бы подошёл Bitcoin, но банки вряд ли захотят делать взаиморасчёты публично доступными. Они же поддерживают ноды и верифицируют транзакции остальных участников процесса.

Только тогда, когда между сторонами возникает несогласие. Отличается ли функционально такая система от распределённой базы данных с контролем доступа? Если второе будет юридически возможно (т.е. И здесь вопрос в том, признают банки решение системы (результат консенсуса) или пойдут в суд его оспаривать. если банки не подписали соглашение о том, что они безоговорочно принимают решение системы), то вся затея бессмысленна.

Кроме того, учитывая, что банки на данный момент зависят от регулятора, система потеряет смысл, если регулятор запретит или ограничит её использование — например, откажется принимать результат её работы в суде.

8. Токен ради токена

В подтверждение актуальности темы скажу, что только что, 28 января, BitTorrent провёл успешное ICO. Да, вам не показалось, я в 2019 году пишу про ICO.

Проблема в том, что Словами «токен ради токена» я обозначаю ситуацию, когда стартап выпускает токены и заявляет, что они дают владельцам долю в компании/часть прибыли/опцион на опцион.

Блокчейн — это не IoT.

Наличие обещания в виде токена само по себе не принуждает основателей компании ни к чему, что мы многократно наблюдали во время бума ICO (Lambos, вот это всё). Блокчейн в отличие от венчурного инвестора или регулятора не возьмёт стартапера за пуговицу и не заставит работать или отвечать перед вкладчиками. В этом смысле ICO гораздо ближе к краудфандингу, чем к IPO.

Тем не менее я вынужден признать, что пока в этой области их почти нет. Лично я являюсь сторонником децентрализованных институтов, а не регуляций. А значит, приходится либо пользоваться существующими инструментами, либо уповать на честность основателей компании.

Далее я рассмотрю несколько юзкейсов, которые могут сработать.

Блокчейн как повод

Например, в корпорации существует устаревший на пару десятков лет процесс/система, который давно пора переделать по современным лекалам. Как ни странно, даже неработающие применения блокчейна могут принести пользу. Консервативное руководство может быть не готово тратить ресурсы на то, чтобы сделать просто нормально — но готово вложиться в блокчейн-бигдата-ЭйАй-АйОуТи-инновацию, чтоб оказаться впереди планеты всей.

image

Блокчейн в этом случае может давать какие-то преимущества, может быть не нужен, а может и вовсе существовать только на слайдах. Тут-то на сцену и выходит хитрый (но добросовестный!) интрапренёр и под соусом блокчейна предлагает просто правильный дизайн системы.

Но даже если нет, предложение может быть дельным. Hint: когда вам предлагают блокчейн, убедитесь, что предлагают именно его.

Деньги

Он как раз сохраняет утверждения вида «субъект A владел суммой X; субъект A передал сумму X субъекту B; субъект B владеет суммой X». Блокчейн для денег подходит идеально — в том числе потому, что для этого и был создан. А вот вопрос, откуда монеты взялись исходно (майнинг), заслуживает отдельной статьи. Корректность этих утверждений может быть проверена внутри блокчейна, поскольку предыдущие аналогичные утверждения записаны на нём же.

Во второй части «If You’re Not Breaking Rules You’re Doing It Wrong» он говорит о том, что децентрализация необходима в первую очередь, чтобы ломать правила, — ведь те, кто за этими правилами следит, захотят вам помешать. Симон Моррис написал серию статей «BitTorrent Lessons for Crypto».

И Bitcoin этому условию полностью удовлетворяет: он ломает давно ставшее привычным правило, согласно которому только государства могут выпускать деньги и определять порядок эмиссии, а также решать, какая транзакция имеет право на жизнь, а какая нет.

В то время как подавляющее большинство блокчейн-стартапов вынуждены с нуля объяснять, что за задачу они решают и почему это важно. Что на мой взгляд более важно, Bitcoin выполняет конкретную функцию — передачу ценности, существовавшую и понятную людям задолго до него: «Shelling Out: The Origins of Money» (Nick Szabo). Решать насущные проблемы, а не придумывать новые. Эта ситуация выглядит абсурдно даже для традиционных стартапов, у которых принято искать клиента, тестировать гипотезы, подстраиваться под рынок.

Именно это и заставило меня в начале статьи поставить под вопрос уместность термина «применение блокчейна». Так или иначе, Bitcoin — единственное на сегодняшний день однозначно работающее применение блокчейна.

Хотя возможно, что у индустрии и получится таким образом вытащить себя за волосы из болота, как Мюнхгаузен. Ремарка: здесь я игнорирую применения блокчейна, которые используются не конечным пользователем, а другими блокчейнами, применяемыми в свою очередь децентрализованными биржами, на которых торгуются токены третьих блокчейнов.

Смарт-контракты

Эта концепция находится в самом начале своего пути. Давайте будем честны с собой: пока что никто толком не знает, что такое смарт-контракты и зачем они нужны. На момент появления децентрализованных электронных денег Bitcoin люди уже знали, что такое деньги, и привыкли пользоваться электронными деньгами. Ethereum сильно опередил своё время. Можно пытаться прыгнуть через две ступеньки, но на это нужно как минимум время. На момент появления децентрализованных электронных контрактов Ethereum люди и с бумажными контрактами управляются не совсем уверенно, а электронных централизованных контрактов просто нет. И это в том случае, если сама концепция в принципе жизнеспособна.

Но это именно вера, подтверждений или опровержений ей я пока не нашёл. Лично я верю, что в будущей картине мира смарт-контракты найдут своё место, поэтому считаю правильным работать над ними уже сейчас.

Ещё примеры

Какие-то я забыл упомянуть, о других просто не знаю. Выше я разобрал те примеры, которые сумел вспомнить и обобщить. Возможно, я напишу продолжение. Поэтому я буду благодарен, если вы в комментариях накидаете ещё применений блокчейна для разбора.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»