Вопрос, который я не перестаю себе задавать — каково практическое применение блокчейн технологий здесь и сейчас? Какие потребности технология может закрыть на текущем этапе развития? В поисках ответа за последний год я принял участие в десятке хакатонов, экспериментируя с технологией, разрабатывая один концепт за другим. На хакатоне Binary District, который проходил после курса Blockchain Developer, нашей команде (мне и Денису Московченко Di0niz) требовалось создать систему файлстемпинга, аналогичную OpenTimestamps.



В результате родился концепт, который решал поставленную задачу с помощью комбинации технологии блокчейн и 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 декабря.

Комментарии (14)


  1. Tortortor
    24.11.2018 11:41

    «принадлежность файла к держателю приватного ключа»
    нет


  1. Sabubu
    24.11.2018 13:02
    +1

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

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

    > В этом суть дизайна сети IPFS, ведь какой смысл сжигать трафик и место на носителях, дублируя файлы, уже загруженные в сеть.

    Решения суда — это новый контент, и его в любом случае придется хранить, хоть на веб-сервере, хоть на IPFS-сервере. Только веб-сервер будет тратить меньше CPU.

    > Первая транзакция сети Bitcoin содержит в себе заголовок газеты The Times от 3 января 2009 года Chancellor on brink of second bailout for banks. Это доказывает, что транзакция была совершена не ранее указанной даты.

    Тогда может к решению суда прикладывать заголовок газеты, вышедшей в тот же день? Вместо непонятного блокчейна, в котором можно в теории поставить любую дату или провести атаку 51%.

    По моему, все эти проблемы легко и прекрасно решаются более простой системой.


    1. ivan386
      24.11.2018 15:24

      1. IPFS работает и под XP. Про более старые платформы не знаю.
      2. У IPFS есть публичные шлюзы.
      3. Есть клиент который работает в браузере.


    1. AMRBZ Автор
      24.11.2018 18:12

      Не, смтори, тут основной велью от блокчейна в том, что он устраняет проблему доверия в хранении файлов. Кто бы сейчаc не хранил файл, ему приходится доверять. Да, ты прав, атаку 51% теоретически сделать можно, так же как и кучу других атак, однако чем больше число участников в сети, тем дороже и сложнее будет её провести. В блокчейне биткойна сейчас десятки тысяч участников, в Waves конечно меньше, но у них PoS и нужно очень много финансов чтобы выкупить необходимое число токенов.


      1. Moskus
        24.11.2018 21:57

        тут основной велью от блокчейна

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


  1. justserega
    24.11.2018 18:24

    А в каком сейчас состоянии множество блокчейн стартапов в мире (юридических, банковских и т.д.) Где-то есть уже запущенные продукты?


  1. AMRBZ Автор
    24.11.2018 20:50

    Да, конечно. Могу отметить Ripple, который создал протокол для коммуникации банковского сектора или, к примеру, российскую команду SONM
    Или вот, библиотека блокчейн-кейсов sdlt.io/cases


  1. kovserg
    24.11.2018 22:21
    +2

    Оглянитесь вокруг в какой геморой превратили цифровую подпись. Страшно подумать во что выльется с блок чеин если его всё таки куда-нибудь вкорячат внедрят и всех добровольно принудительно заставят этим пользоваться.

    И еще такой вопрос (который как-то обычно не освещают) блок чеин это распределённая система, и данные должны храниться на множестве компьютеров. За чей счет банкет? Какой профит владельцам этих компьютеров от ваших бесполезных документов? Или они по доброте душевной будут шарить вычислительные мощности, трафик и дисковое пространство?


  1. alexstup
    25.11.2018 08:12

    Не первый раз замечаю аккаунт молчавший 2-3-4 года и внезапно запостивший статью.


  1. denisromanenko
    25.11.2018 08:24

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

    Воистину, какой в этом смысл незаинтересованным людям? Я даже торрент удаляю после загрузки (ну и мразь же я), а тут про абсолютно левые доки разговор.

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

    Первые три могут хоть атаку 51, хоть 99 организовать и все поменять


    1. solariserj
      25.11.2018 16:25

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


      1. AMRBZ Автор
        25.11.2018 19:08

        Я имел в виду, что документы храняться в публичном блокчейне. В случае хранения данных материалов дела, приватный блокчейн имеет немного смысла, если все ноды будут на контролируемых серверах. Chainify как раз и решает эту проблему, предоставляя беспдатный инструмент для сохранения информации с помощью публичного блокчейна от Waves. У каждого блокчейна своя экономика и система мотивации держателей полных нод. Например, их можно мотивировать долей в вознаграждении с комиссий. Также держатели полных нод могут быть майнерами и генерить блоки. Это позволит им получать доход с вознаграждения за генерацию блока и комиссий с транзакций в блоке.

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


        1. kovserg
          25.11.2018 20:31

          Хочется увидеть более конкретно в цифрах. Желательно на примерах.
          Да и не стабильное оно сегодня есть а завтра нет: ASIC-майнеры продаются на развес


  1. valdemartorch
    25.11.2018 18:59

    Очень интересно.