Технический обзор: блокчейн без доверия немасштабируем

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

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

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

    Это можно сделать один раз, а затем постоянно наблюдать за состоянием учётной записи любого человека в мире. Можно следить за каждой транзакцией или добавить её в журнал записей и просто «переделывать» журнал для одной учётной записи, когда нужно подтвердить из него транзакцию. Или же можно перезагружать и перезапускать журнал каждый раз, когда нужно что-то подтвердить.

    Всё это значит, что независимо от способа управления, в системе без какого-либо доверия на каждый платёж в мире нужно тратить пропускную способность и мощность ЦПУ. Возьмём такой пример: в 2017 году 1,66 млрд человек совершили покупки онлайн — это максимум 10% от всех покупок в мире. Получается, что просто для того чтобы купить что-то, каждый пользователь блокчейна должен получать и обрабатывать данные 16 млрд транзакций в год.

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

    Конечно, можно работать с данными таким образом, чтобы подтверждать не все транзакции, а только те, которые нужны пользователю. Но невозможно угадать, с кем придётся взаимодействовать в будущем. Рано или поздно пользователю понадобятся данные, которые не были подтверждены. И тут ему опять придётся довериться чужим результатам. Или же… подтвердить эти данные.

    Коротко говоря, для работы блокчейна без какого-либо доверия нужно обслуживать одну и ту же дублированную (не «распределённую», а дублированную!) базу данных на семи миллионах ненадёжных узлов, в свою очередь дублирующих всю деятельность друг друга.

    Кроме того, любую систему, которая передаёт всю нагрузку майнерам, тоже невозможно масштабировать. Такая система не оправдала себя на реальном примере, проблемы которого прекрасно известны по крайней мере одному генеральному директору в сфере криптовалют. Я коснусь этой темы в другой статье.

    Не существует блокчейнов, которые абсолютно не требуют доверия

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

    Но это ещё не всё. В уайтпэйпере Биткойна Сатоши Накамото утверждает:

    Если большая часть мощности ЦПУ контролируется честными узлами, то самая честная цепочка будет расти быстрее всех остальных и опередит все конкурентные цепочки.

    Участникам просто необходимо доверять большей части мощности ЦПУ или любому другому большинству в блокчейне. Все майнеры — это доверенные посредники, а это не очень-то хорошо. Из-за этого возникает возможность атаки 51%, и это не просто теория. В 2018 году хакеры 9 раз успешно атаковали основные блокчейны и украли миллионы долларов.

    В блокчейнах с доверием нет смысла

    Есть ещё один способ управлять блокчейном, не подвергаясь атаке 51%. Это приватный блокчейн, который принадлежит одной компании и расположен на её серверах. И да, в этом случае компания и является доверенным посредником.

    Если вы готовы доверить компании поддержку приватного блокчейна за вас, то с тем же успехом можете предложить им использовать обычную базу данных. В целом, так и нужно делать: это дешевле, быстрее и намного эффективнее, а компания сможет потратить больше компьютерного «железа» на обеспечение безопасности и непротиворечивости данных. В такой системе:

    • Не нужно работать с не-доверенными узлами;
    • Если это более-менее хорошая компания, то узлы гарантировано используют одно и то же программное обеспечение (если нет, то откуда уверенность в том, что их программное обеспечение для блокчейна хорошее?);
    • Если они могут доверять собственным узлам, то им не нужны «пожирающие энергию» майнеры;
    • Компания имеет финансовую мотивацию поддерживать безопасность ваших данных, а блокчейн — не имеет, если в нём не создаётся валюта.

    Если есть доверие к узлам, то блокчейн не нужен. В этом случае абсолютно любая технология цифрового хранения данных будет более эффективна, чем блокчейн. Скорость записи в сеть Биткойна — 1 блок/10 мин. При среднем размере блока в 1 МБ это меньше, чем скорость дискет из 1980-х гг.

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

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

    • Неизменяемость. Атака 51% позволяет хакерам вносить изменения в блокчейн (только в 2018 году было совершено 9 успешных подобных атак на основные блокчейны, включая Bitcoin Gold, что принесло злоумышленникам $18 млрд), и для некоторых сетей осуществить её достаточно просто;
    • Надёжность/невозможность атак DDoS. Как мы уже видели неоднократно на примере криптокотиков и похожих случаев в сети ETH, DDoS-атака возможна не только в случае непредвиденного слишком частого использования протокола, она ещё и «встраивается» в протокол вместе с возможностью вписывать код в транзакции («контракты»);
    • Отсутствие доверия уже описано выше;
    • Анонимность мы рассмотрели в предыдущей статье Общество блокчейна: какие обещания нарушает блокчейн.

    Источник

    Оцените статью
    Добавить комментарий