Вопрос, который я не перестаю себе задавать — каково практическое применение блокчейн технологий здесь и сейчас? Какие потребности технология может закрыть на текущем этапе развития? В поисках ответа за последний год я принял участие в десятке хакатонов, экспериментируя с технологией, разрабатывая один концепт за другим. На хакатоне Binary District, который проходил после курса Blockchain Developer, нашей команде (мне и Денису Московченко Di0niz) требовалось создать систему файлстемпинга, аналогичную OpenTimestamps.
В результате родился концепт, который решал поставленную задачу с помощью комбинации технологии блокчейн и IPFS. Спустя год этот концепт перерос в сервис Chainify, позволяющий легко сохранять данные в блокчейн и удобно с ними работать. В этой статье я расскажу, как работает сервис и какие проблемы он может решать.
Стив Джобс после своего возвращения в Apple в 1997 году, говоря о создании продуктов, призывал перестать фокусироваться на прорывных технологиях и способах продаж; он предлагал начинать с потребителя — и только потом обращаться к технологиям за поиском решений. Сейчас это правило можно отнести к разряду маркетинговых догматов, являющихся обязательными для успешных продуктов. В течение многих лет это, как сейчас кажется, очевидное правило доказывает свою эффективность в бесчисленном количестве индустрий. Оно же является одним из ключевых принципов бережливого стартапа в процессе создания минимального жизнеспособного продукта. Идти от проблемы к решению — все просто.
Однако, будучи погруженным в блокчейн индустрию, я не перестаю удивляться количеству проектов, обещающих очередную высокопроизводительную, управляемую искусственным интеллектом блокчейн-платформу с тьюринг-полнотой, децентрализацией и новым мировым порядком к середине 2022 года. Не является ли это фокусом на технологиях, а не на потребителе и его проблемах? Создание высокопроизводительных блокчейнов на альтернативных типах консенсуса, вероятно, полезно с исследовательской точки зрения. Однако каков их практический смысл, если сеть биткоина с производительностью три транзакции в секунду остается недозагруженной?
Chainify использует в своей работе IPFS — протокол распределенного файлового хранилища. Команда ipfs.io разработала клиент с открытым исходным кодом, который позволяет любому желающему стать участником сети и запустить свою ноду. Клиент IPFS дает доступ ко всем файлам, которые когда-либо были загружены в сеть. Адресом файла является его хеш, который возвращает клиент при успешной загрузке файла. Хеш формируется исходя из содержимого файла путем его дробления на мелкие куски и составления дерева Меркла из хешей этих кусков. Что это значит? Загрузив роман «Война и мир», мы получим некий хеш. Загрузив его еще раз, мы получим тот же самый хеш, ведь содержимое файла не изменилось.
В этом суть дизайна сети IPFS, ведь какой смысл сжигать трафик и место на носителях, дублируя файлы, уже загруженные в сеть. Но если в романе добавить, например, не существовавшую ранее запятую, то файл загрузится и хеш на выходе будет принципиально иным. Подобное правило применимо и к изображениям с измененным пикселем, и аудио- / видеозаписям с вырезанным фрагментом.
Итак, протокол IPFS позволяет нам загрузить файл в сеть и иметь к нему доступ с любой ноды. Однако в то же время протокол не подразумевает удаления ранее загруженных файлов, хотя технически это возможно.
Протокол IPFS дает информацию лишь о наличии файла и его содержимом, однако он не отвечает на вопрос, кем и когда был загружен этот файл. Но ответы на эти вопросы может дать блокчейн.
В качестве блокчейн-платформы в Chainify используется решении от Waves Platform из-за скорости работы и фиксированной стоимости транзакции. Структура транзакций данного блокчейна предполагает наличие поля attachment, которое позволяет прикреплять к транзакции дополнительную информацию в текстовом виде (в кодировке base58). Подробнее об устройстве транзакций можно прочитать тут. В свою очередь, поле Timestamp показывает, когда была совершена транзакция. Таким образом, записав в тело транзакции (attachment) хеш IPFS-файла, мы можем доказать наличие файла на определенную дату и его неизменность с тех пор.
Архитектура Chainify предполагает отправку транзакции самому себе, сохраняя её в блокчейн и подписывая транзакцию на клиентской части. Следует отметить, что в блокчейне совершение транзакций возможно только при наличии приватного ключа. Подробнее об этом можно узнать здесь или здесь. Таким образом, держатель ключа может криптографически доказать, что именно им была отправлена данная транзакция.
Отсюда следует, что факт транзакции (с приложенным хэшем файла) криптографически доказывает наличие файла на момент совершения транзакции держателем приватного ключа. Разумеется, это не дает права собственности на загруженный в сеть IPFS-файл. Это также не гарантирует, что файл в сети IPFS не был загружен ранее, до приложения хэша к транзакции.
Комбинация блокчейна и IPFS позволяет доказать:
В ближайшее время исходный код Chainify будет выложен в открытом доступе.
Я не берусь подсчитать, сколько постов размещено в социальных сетях средствами массовой информации, но предполагаю, что они создают изрядную долю трафика в пользовательских лентах. Известно, что размещенный пост может быть отредактирован или удален. Особенно острой эта проблема становится в эпоху информационных войн: стороны обвиняют друг друга в фальсификации данных и использовании сомнительных источников. Также это актуально для предвыборных кампаний — высказывания кандидатов тоже могут подвергаться редактуре.
Создание клона поста в блокчейне — это криптостойкое подтверждение времени публикации и неизменности материала. Ссылку на криптоклон поста можно приложить к публикации или отправить в приложении к письму.
К сожалению, факт наличия коррупционной составляющей в судебных системах не отрицается ни в одной мировой юрисдикции. Это проблема проявляется в возможности манипуляции материалами дела. Иной раз в пользу одной из сторон материалы дела не принимаются к рассмотрению, редактируются или вовсе теряются. Это относится в том числе к делам, по которым уже вынесено обвинительное заключение. Если после приговора — например, через год — подается апелляция, то уничтожение материалов дела ведет к отсутствию доказательной базы, и заключенные освобождаются в связи с недоказуемостью обвинения.
Запись адвокатами материалов дела в базу данных блокчейна, а также структурирование материалов в понятном для всех виде позволяет безопасно хранить и изучать материалы дела. Также любой желающий (например, студент юридического вуза или представитель правозащитной организации) может самостоятельно изучать материалы дела и оценивать правомерность принятия судебных решений.
Некоторое время назад я принимал участие в благотворительном хакатоне организованным Mail.Ru. Его тематикой было решение проблемы насилия в подростковой среде, будь то домашнее насилие, проявление агрессии в сети (кибербуллинг, троллинг и пр.) или в учебном заведении. Я выступил со своим видением решения проблемы, и после хакатона со мной связались представители благотворительного фонда «Твоя территория». Они рассказали о своей проблеме.
Выяснив это, в фонде отказались от поддержки канала на ask.fm. А увидев возможности анонимизации обращений, заинтересовались технологией. Ведь в блокчейне можно хранить текст в чистом виде — это значит, что его можно использовать в качестве средства коммуникации. Так безопасность подростков может быть обеспечена архитектурой блокчейна.
Каждое сообщение фактически является файлом, сохраняемым в сеть IPFS. Оно также обладает паспортом, ссылку на который можно приложить к официальному письму.
В то же время с помощью блокчейна фонд может решать и другую задачу — доказательство факта и количества обращений в фонд, что очень важно для инвесторов и меценатов, поддерживающих благотворительные организации.
Коммуникационный сервис можно также использовать для фиксации договоренностей при заключении контрактов или для публичных обращений в государственные структуры. В этом случае публичность коммуникации позволяет отследить факт и суть обращения в госорганы, скорость обработки запроса, характер ответа.
Некоторое время назад в статье Саймона Уордли я увидел этот график.
График показывает этапы развития технологии в разрезе ее адаптации в обществе. К примеру, рассмотрим электричество. Электричество как технология принимается в качестве некого стандарта, которому должны соответствовать индустрии. У нас нет персональных электростанций в квартирах — мы всего лишь втыкаем вилку в розетку. Представьте себе, что, продавая электричество как технологию, вам рассказывали бы о скорости передачи электронов по сети. Купили бы?
Успех блокчейна не в скорости транзакций и не в тьюринг-полноте. У человечества наконец появился источник правды, на который можно положиться — и делать то, что раньше было невозможно.
Блокчейн — выдающаяся технология, способная в корне изменить принцип коммуникации и взаимодействия. Простой пример: принимая решение об инвестировании или сотрудничестве, не придется полагаться на заявления бизнеса о росте выручки и количестве вкладчиков. Достаточно будет прочитать это в истории транзакций.
В январе начнется новый поток курса Blockchain Developer, с которого я начинал свой путь в блокчейн разработке. Если вы уже опытный разработчик и просто хотите проверить свои силы — приходите на хакатон Waves, который будет проходить в Москве 14–16 декабря.
В результате родился концепт, который решал поставленную задачу с помощью комбинации технологии блокчейн и IPFS. Спустя год этот концепт перерос в сервис Chainify, позволяющий легко сохранять данные в блокчейн и удобно с ними работать. В этой статье я расскажу, как работает сервис и какие проблемы он может решать.
Отступление
Стив Джобс после своего возвращения в Apple в 1997 году, говоря о создании продуктов, призывал перестать фокусироваться на прорывных технологиях и способах продаж; он предлагал начинать с потребителя — и только потом обращаться к технологиям за поиском решений. Сейчас это правило можно отнести к разряду маркетинговых догматов, являющихся обязательными для успешных продуктов. В течение многих лет это, как сейчас кажется, очевидное правило доказывает свою эффективность в бесчисленном количестве индустрий. Оно же является одним из ключевых принципов бережливого стартапа в процессе создания минимального жизнеспособного продукта. Идти от проблемы к решению — все просто.
Однако, будучи погруженным в блокчейн индустрию, я не перестаю удивляться количеству проектов, обещающих очередную высокопроизводительную, управляемую искусственным интеллектом блокчейн-платформу с тьюринг-полнотой, децентрализацией и новым мировым порядком к середине 2022 года. Не является ли это фокусом на технологиях, а не на потребителе и его проблемах? Создание высокопроизводительных блокчейнов на альтернативных типах консенсуса, вероятно, полезно с исследовательской точки зрения. Однако каков их практический смысл, если сеть биткоина с производительностью три транзакции в секунду остается недозагруженной?
Что такое IPFS
Chainify использует в своей работе IPFS — протокол распределенного файлового хранилища. Команда ipfs.io разработала клиент с открытым исходным кодом, который позволяет любому желающему стать участником сети и запустить свою ноду. Клиент IPFS дает доступ ко всем файлам, которые когда-либо были загружены в сеть. Адресом файла является его хеш, который возвращает клиент при успешной загрузке файла. Хеш формируется исходя из содержимого файла путем его дробления на мелкие куски и составления дерева Меркла из хешей этих кусков. Что это значит? Загрузив роман «Война и мир», мы получим некий хеш. Загрузив его еще раз, мы получим тот же самый хеш, ведь содержимое файла не изменилось.
В этом суть дизайна сети IPFS, ведь какой смысл сжигать трафик и место на носителях, дублируя файлы, уже загруженные в сеть. Но если в романе добавить, например, не существовавшую ранее запятую, то файл загрузится и хеш на выходе будет принципиально иным. Подобное правило применимо и к изображениям с измененным пикселем, и аудио- / видеозаписям с вырезанным фрагментом.
Итак, протокол IPFS позволяет нам загрузить файл в сеть и иметь к нему доступ с любой ноды. Однако в то же время протокол не подразумевает удаления ранее загруженных файлов, хотя технически это возможно.
Для чего нам блокчейн
Протокол IPFS дает информацию лишь о наличии файла и его содержимом, однако он не отвечает на вопрос, кем и когда был загружен этот файл. Но ответы на эти вопросы может дать блокчейн.
В качестве блокчейн-платформы в Chainify используется решении от Waves Platform из-за скорости работы и фиксированной стоимости транзакции. Структура транзакций данного блокчейна предполагает наличие поля attachment, которое позволяет прикреплять к транзакции дополнительную информацию в текстовом виде (в кодировке base58). Подробнее об устройстве транзакций можно прочитать тут. В свою очередь, поле Timestamp показывает, когда была совершена транзакция. Таким образом, записав в тело транзакции (attachment) хеш IPFS-файла, мы можем доказать наличие файла на определенную дату и его неизменность с тех пор.
Оффтопом
Первая транзакция сети Bitcoin содержит в себе заголовок газеты The Times от 3 января 2009 года Chancellor on brink of second bailout for banks. Это доказывает, что транзакция была совершена не ранее указанной даты.
Архитектура Chainify предполагает отправку транзакции самому себе, сохраняя её в блокчейн и подписывая транзакцию на клиентской части. Следует отметить, что в блокчейне совершение транзакций возможно только при наличии приватного ключа. Подробнее об этом можно узнать здесь или здесь. Таким образом, держатель ключа может криптографически доказать, что именно им была отправлена данная транзакция.
Отсюда следует, что факт транзакции (с приложенным хэшем файла) криптографически доказывает наличие файла на момент совершения транзакции держателем приватного ключа. Разумеется, это не дает права собственности на загруженный в сеть IPFS-файл. Это также не гарантирует, что файл в сети IPFS не был загружен ранее, до приложения хэша к транзакции.
Комбинация блокчейна и IPFS позволяет доказать:
- наличие файла на определенную дату;
- неизменность файла с тех пор;
- принадлежность файла к держателю приватного ключа.
В ближайшее время исходный код Chainify будет выложен в открытом доступе.
Практическое применение
Открытость СМИ
Я не берусь подсчитать, сколько постов размещено в социальных сетях средствами массовой информации, но предполагаю, что они создают изрядную долю трафика в пользовательских лентах. Известно, что размещенный пост может быть отредактирован или удален. Особенно острой эта проблема становится в эпоху информационных войн: стороны обвиняют друг друга в фальсификации данных и использовании сомнительных источников. Также это актуально для предвыборных кампаний — высказывания кандидатов тоже могут подвергаться редактуре.
Создание клона поста в блокчейне — это криптостойкое подтверждение времени публикации и неизменности материала. Ссылку на криптоклон поста можно приложить к публикации или отправить в приложении к письму.
Борьба с коррупцией в судебной системе
К сожалению, факт наличия коррупционной составляющей в судебных системах не отрицается ни в одной мировой юрисдикции. Это проблема проявляется в возможности манипуляции материалами дела. Иной раз в пользу одной из сторон материалы дела не принимаются к рассмотрению, редактируются или вовсе теряются. Это относится в том числе к делам, по которым уже вынесено обвинительное заключение. Если после приговора — например, через год — подается апелляция, то уничтожение материалов дела ведет к отсутствию доказательной базы, и заключенные освобождаются в связи с недоказуемостью обвинения.
Запись адвокатами материалов дела в базу данных блокчейна, а также структурирование материалов в понятном для всех виде позволяет безопасно хранить и изучать материалы дела. Также любой желающий (например, студент юридического вуза или представитель правозащитной организации) может самостоятельно изучать материалы дела и оценивать правомерность принятия судебных решений.
Борьба с кибербуллингом
Некоторое время назад я принимал участие в благотворительном хакатоне организованным Mail.Ru. Его тематикой было решение проблемы насилия в подростковой среде, будь то домашнее насилие, проявление агрессии в сети (кибербуллинг, троллинг и пр.) или в учебном заведении. Я выступил со своим видением решения проблемы, и после хакатона со мной связались представители благотворительного фонда «Твоя территория». Они рассказали о своей проблеме.
«До недавнего времени, в числе прочего, фонд оказывал психологическую поддержку ребятам через ask.fm. Канал был успешен и собирал ощутимую долю обращений. Однако позже выяснилось, что через обращения и ссылки на профили ребят в социальных сетях можно было их выследить. Обращаясь в службу психологической помощи, они находятся как минимум в шатком психологическом состоянии, и ими можно манипулировать».
Выяснив это, в фонде отказались от поддержки канала на ask.fm. А увидев возможности анонимизации обращений, заинтересовались технологией. Ведь в блокчейне можно хранить текст в чистом виде — это значит, что его можно использовать в качестве средства коммуникации. Так безопасность подростков может быть обеспечена архитектурой блокчейна.
Каждое сообщение фактически является файлом, сохраняемым в сеть IPFS. Оно также обладает паспортом, ссылку на который можно приложить к официальному письму.
В то же время с помощью блокчейна фонд может решать и другую задачу — доказательство факта и количества обращений в фонд, что очень важно для инвесторов и меценатов, поддерживающих благотворительные организации.
Фиксация договоренностей
Коммуникационный сервис можно также использовать для фиксации договоренностей при заключении контрактов или для публичных обращений в государственные структуры. В этом случае публичность коммуникации позволяет отследить факт и суть обращения в госорганы, скорость обработки запроса, характер ответа.
Заключение
Некоторое время назад в статье Саймона Уордли я увидел этот график.
График показывает этапы развития технологии в разрезе ее адаптации в обществе. К примеру, рассмотрим электричество. Электричество как технология принимается в качестве некого стандарта, которому должны соответствовать индустрии. У нас нет персональных электростанций в квартирах — мы всего лишь втыкаем вилку в розетку. Представьте себе, что, продавая электричество как технологию, вам рассказывали бы о скорости передачи электронов по сети. Купили бы?
Успех блокчейна не в скорости транзакций и не в тьюринг-полноте. У человечества наконец появился источник правды, на который можно положиться — и делать то, что раньше было невозможно.
Блокчейн — выдающаяся технология, способная в корне изменить принцип коммуникации и взаимодействия. Простой пример: принимая решение об инвестировании или сотрудничестве, не придется полагаться на заявления бизнеса о росте выручки и количестве вкладчиков. Достаточно будет прочитать это в истории транзакций.
В январе начнется новый поток курса Blockchain Developer, с которого я начинал свой путь в блокчейн разработке. Если вы уже опытный разработчик и просто хотите проверить свои силы — приходите на хакатон Waves, который будет проходить в Москве 14–16 декабря.