Иван Иваницкий, ведущий аналитик направления Application Security в компании Ростелеком-Solar, написал в блоге Хабр пост о том, в каких сферах пытаются использовать блокчейн и почему эти «применения» не работают. Вот главное из этой статьи.
Содержание:
1. Supply Chain Management
Допустим, мы заказали доставку товара, и перевозчик обязуется по дороге соблюдать условия хранения, например, поддерживать низкую температуру. Предлагается следующее решение: устанавливаем в грузовик датчик, который регулярно публикует температуру в холодильнике в блокчейн. Таким образом, можно проследить историю температуры и убедиться, что условия хранения были соблюдены на всем пути.
Проблема здесь не в блокчейне, а в датчике. Поскольку датчик находится в физическом мире, которым управляет не код, а люди, датчик легко обмануть. Например, поместить в небольшой холодильник только датчик, а на охлаждение груза не тратиться.
Глобально я бы сформулировал эту проблему так:
Блокчейн — это не Internet of Things (IOT)
Эта формулировка нам понадобится еще не раз. Блокчейн обеспечивает неизменность занесенных в него данных, но не может обеспечить их истинность. Единственное исключение — случай, когда вся система оперирует on-chain, то есть когда блокчейн не пытается заглядывать в физический мир. Тогда вся необходимая информация есть внутри блокчейна, и система может верифицировать корректность данных: например, что на адресе достаточно средств для совершения конкретной транзакции.
Приложения, которые пытаются поставлять в блокчейн данные снаружи, получили название «оракулы», но проблема оракулов пока не решена. И до тех пор, пока решение не будет найдено, попытки реализации Supply Chain Management на блокчейне вроде примера выше — это попытки изобрести самолет до изобретения двигателя.
2. Гарантия подлинности товара
Пускай мы производим некоторый редкий/дорогой товар — часы, вино, автомобили — и хотим дать клиенту возможность убедиться, что попавший к нему в руки экземпляр действительно произведен на нашем заводе. Мы привязываем нашу бутылку вина к токену на блокчейне, печатаем на ней QR-код. Каждая передача бутылки, от завода перевозчику, далее магазину и клиенту, подтверждается транзакцией на блокчейне. Тот, кто держит бутылку в руках, может зайти на сайт и проследить ее путь от самого завода, тем самым убедившись в ее подлинности.
Всю систему ломает простой как валенок эксплойт: продавец-злоумышленник полностью копирует бутылку, наливает туда вино попроще и копию с токеном продает клиенту, а оригинал — тому, кого не интересует токен, или вообще выпивает сам. А все почему? Правильно, потому что
Блокчейн — это не IoT
Бутылка — это физический объект, а значит, при должном старании ее, в отличие от цифровой подписи, можно подделать.
3. Подлинность диплома университета
Здесь уже речь идет об истинности утверждения («Петя окончил МГУ»), а не о подлинности физического объекта. По сути в этом случае мы говорим про цифровую подпись, чтобы подтвердить подлинность, плюс timestamping, чтобы исключить выпуск диплома задним числом.
Цифровая подпись (ЦП) — это отлично, некоторые даже считают асимметричную криптографию величайшим изобретением XX века. Но не стоит ее путать с блокчейном: ЦП существовала и приносила пользу задолго до него. Сейчас стало популярным продавать цифровую подпись под видом блокчейна, так что будьте начеку — возможно, вам нужна только ЦП.
Timestamping — это уже ближе. Блокчейн — это и есть самый надежный способ timestamping’а. Только вот городить новые решения тут не нужно: достаточно положить хеш данных на блокчейн биткоина, надежней и проще некуда.
Хорошая ли идея класть хеш диплома выпускника на блокчейн биткоина, подписывая его цифровыми подписями нескольких профессоров? Да. Важно только потом эту систему не испортить централизованным способом проверки, через сайт или приложение университета, например, ведь именно он станет самым слабым звеном.
4. Голосование
Говоря о голосовании на блокчейне, в первую очередь нужно понять, какую проблему мы хотим решить.
Проблема подделки голоса/аутентификации
Для этого нужен не блокчейн, а цифровая подпись. И главная сложность здесь в том, откуда взять и как хранить приватный ключ. Не буду объяснять, почему любая система, в которой ключ генерируется не на устройстве конечного владельца, является broken by design. Но кроме генерации ключа на своем устройстве важно, чтобы ПО, которым генерируется ключ, было open source и хорошо проаудированным; железо было получено из третьего источника (самый простой вариант — смартфон); пользователь умел обращаться с приватным ключом.
Первые две проблемы может решить разработчик системы, третья гораздо сложнее. Возможно, как раз Bitcoin нас постепенно научит обращаться с ключами: одно дело потерять пароль к странице в соцсети или даже к голосу, совсем другое — к собственным деньгам.
И да, привязка публичного ключа к конкретному человеку, если это требуется в нашем голосовании, — это снова IoT.
Проблема публичности подсчета голосов
Для этих целей в первом приближении подходят смарт-контракты а-ля Ethereum: всем видно, за какого кандидата отдано сколько голосов. Правда, здесь публичности может получиться многовато: если мы видим необезличенный голос каждого человека, мы можем на этого человека давить, чтобы он проголосовал, как нам надо.
Можно построить систему так, что каждый конкретный голос не будет виден никому, кроме его владельца. Но вот задача более сложная — чтобы даже сам владелец не мог доказать, что проголосовал за определенного кандидата, — пока не решена, а значит, и давление возможно. (Коллеги говорят, что решена, и решение называется uncoercible encryption).
И, опять же, задача проверки того, не выдано ли дополнительных голосов несуществующим людям, — это IoT.
5. Доказательство авторства
Художник A написал картину и хочет зафиксировать ее авторство на блокчейне. Он фотографирует ее, хеш фотографии кладет в блокчейн, а саму фотографию выкладывает в блог. После этого художнику B, который будет утверждать, что картину на самом деле написал он, наш художник A предъявит фотографию и хеш, тем самым доказав, что он заявил ее авторство еще давно.
Две проблемы:
- Художник B может сказать, что не знал о блокчейне, поэтому не зафиксировал там авторство. То есть чтобы приносить пользу, такая процедура должна стать общепринятой.
- Художник B может проникнуть в мастерскую художника A, сфотографировать картину и выложить хеш на блокчейн раньше, чем художник A.
Пример с картиной можно распространить на любое другое произведение, эти проблемы сохранятся. Потому что
Блокчейн — это не IoT
В целом же этот юзкейс не лишен смысла. Главная особенность в том, что тут достаточно блокчейна биткоина, новое решение не нужно.
6. Земельный кадастр
Предлагалось также привязать к токенам на блокчейне владение землей. Тут тоже возникают как минимум две проблемы.
Действия регулятора
Если бутылку/часы/машину по факту можно передать P2P (из рук в руки), то регистрация владения землей на сегодняшний день привязана к регулятору. Регулятор требует регистрировать сделки по передаче земли у него и, в отличие от случая с часами, всегда может применить силу, физически придя на вашу землю. Регулятор может настаивать на передаче земли, и что тогда происходит с записью на блокчейне?
Если на блокчейне будет записано, что землей владеете вы, это будет не соответствовать действительности. Если регулятор может сделать собственную запись, переписав вашу, то блокчейн не работает. Это особенно важно в свете того, что в ряде случаев именно от махинаций регулятора (или конкретных чиновников) с помощью блокчейна и предлагается защищаться.
Централизация разработки и поддержки
Кто будет разрабатывать такую систему и поддерживать ноды? Если снова регулятор или его контрагент, то такая система не будет децентрализованной. Децентрализованный протокол с централизованной разработкой — это централизованный протокол (привет, Ethereum!).
7. Межбанковские переводы
Есть набор не доверяющих друг другу сторон, и нет доверенной третьей стороны. Здесь бы подошел биткоин, но банки вряд ли захотят делать взаиморасчеты публично доступными. Поэтому тут наш выбор — приватный блокчейн, записывать данные в который могут только банки. Они же поддерживают ноды и верифицируют транзакции остальных участников процесса.
Отличается ли функционально такая система от распределенной базы данных с контролем доступа? Только тогда, когда между сторонами возникает несогласие. И здесь вопрос в том, признают банки решение системы (результат консенсуса) или пойдут в суд его оспаривать. Если второе будет юридически возможно (т. е. если банки не подписали соглашение о том, что они безоговорочно принимают решение системы), то вся затея бессмысленна.
Кроме того, учитывая, что банки на данный момент зависят от регулятора, система потеряет смысл, если регулятор запретит или ограничит ее использование — например, откажется принимать результат ее работы в суде.
8. Токен ради токена
Словами «токен ради токена» я обозначаю ситуацию, когда стартап выпускает токены и заявляет, что они дают владельцам долю в компании/часть прибыли/опцион на опцион. Проблема в том, что
Блокчейн — это не IoT
Блокчейн, в отличие от венчурного инвестора или регулятора, не возьмет стартапера за пуговицу и не заставит работать или отвечать перед вкладчиками. Наличие обещания в виде токена само по себе не принуждает основателей компании ни к чему, что мы многократно наблюдали во время бума ICO. В этом смысле ICO гораздо ближе к краудфандингу, чем к IPO.
Источник: ru.ihodl.com