Scroll to top

Пределы масштабируемости Blockchain по сравнению с Holochain


Stariy - 13 июня, 2021 - 0 comments

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

Виталик начинает с того, что пишет:
Насколько далеко можно продвинуться в масштабируемости blockchain? Действительно ли можно, как хочет Элон Маск, «ускорить время блока в 10 раз, увеличить размер блока в 10 раз и снизить комиссию в 100 раз», не приводя к крайней централизации и не ставя под угрозу фундаментальные свойства, которые делают blockchain тем, чем он является?  Как выяснилось, существуют важные и довольно тонкие технические факторы, которые ограничивают масштабирование blockchain как с использованием шардинга, так и без него.

Я знаю, что это может испортить основную мысль, но я хочу подчеркнуть разницу: У Holochain нет проблем масштабируемости blockchain. Проблемы масштабирования блокчейна в основном связаны с управлением крупномасштабным консенсусом. Мы демонстрируем с помощью Holochain, что вам не нужен консенсус для поддержания целостности данных в распределенных приложениях или валютах.

Обычные пользователи должны иметь возможность управлять узлом

Виталик показывает, как майнеры или стейкеры в сети blockchain могут сговориться (собрав супербольшинство консенсусных узлов), чтобы провести произвольную атаку, например, положить 4,5 миллиарда единиц ранее несуществующей валюты на выбранный ими счет.

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

Мне нравится, как он тонко признает, что майнинг и стейкинг на самом деле не являются децентрализованными. Как я уже отмечал ранее, blockchain попал в петлю обратной связи с растущей централизацией. Любая «децентрализованная» система, использующая Proof-of-Work или Proof-of-Stake, в конечном итоге приведет к централизации власти, богатства и контроля. На самом деле, если вы действительно находитесь на грани возможного в распределенных системах, вы понимаете, что любой подход к консенсусу является одним из видов централизации. С архитектурными инновациями Holochain все еще возможно управлять целостностью распределенных данных, не устраняя различия в перспективах.

Затем Виталик цитирует твит, в котором, по сути, говорится следующее:

Вы защищаетесь от злонамеренных изменений, заставляя пользователей проводить валидацию. Именно так работает Holochain.

В Holochain нет ни майнеров, ни стейкеров. На самом деле, нам не нужен встроенный валютный токен, который нужен всем blockchain, чтобы они могли платить людям за их работу, потому что они настолько неэффективны. При использовании приложения Holochain пользователи сами размещают у себя blockchain. Они буквально направляют свой веб-браузер на `localhost`, чтобы использовать приложение. Некоторые данные, которые нужны пользователям, размещаются локально, а Holochain обеспечивает распределенный механизм целостности данных, который извлекает любые другие данные, которые им нужны, у пользователей, которые их хранят.

Какой объем работы мы можем потребовать от полных узлов?

для запуска полных узлов на blockchain требуется много работыБольшинство людей знают, что для запуска полных узлов на blockchain требуется много работы с точки зрения CPU/GPU, пропускной способности и хранения данных. У Виталика есть несколько стратегий по снижению объема работы в Ethereum 2.0 путем перехода от майнинга к стейкингу и даже запуска 64 шардов под основной цепочкой. Но вопрос остается открытым: смогут ли обычные пользователи запускать полноценные узлы? Даже на своих телефонах?

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

  • Вычислительная мощность: ~5-10% мощности процессора может быть потрачено на верификацию блоков. [Возможно, это нормально, если вы подключены к сети, но это довольно быстро высасывает батарею вашего телефона. Но это процентное использование одного ядра? Или он думает, что если у меня есть 8 ядер, то я буду держать одно ядро на 100% только для Ethereum?]
  • Пропускная способность: возможно, мы сможем обрабатывать 1-5 МБ блоков каждые 12 секунд. [Это около 400 Гб в день. Если я превышаю 15 Гб в месяц, мой тарифный план сотовой связи снижает скорость передачи данных до 2G. Сотовые «безлимитные» тарифные планы на самом деле не являются безлимитными — это перебор. Такие уровни использования могут даже вызвать подозрение в злоупотреблениях у домашних интернет-провайдеров. Надеюсь, вы не собираетесь также смотреть Netflix.]
  • Хранение: 512 гигабайт [Телефоны и планшеты обычно не имеют такого объема памяти. Я использую свой ноутбук с SSD-накопителем на 512 ГБ, так что, очевидно, 100% этого объема должно быть выделено для Ethereum].

Хотя цифры, которые он предлагает, значительно ниже, чем запуск установки для добычи Ethereum с 8 картами GPU, которые вы можете использовать для обогрева дома, это все равно кажется довольно большой натяжкой для обычных пользователей телефонов, планшетов или ноутбуков. Никакое другое программное обеспечение, которое вы используете, не требует от вас этого. Это кажется особенно неразумным, если учесть, как мало ежедневной пользы большинство людей получают от любых dApps на Ethereum. Ожидать, что я буду выделять столько своих вычислительных ресурсов на Ethereum только для поддержания его работоспособности, когда я совершаю менее пары транзакций в месяц, кажется довольно безумным.

Сколько работы требуется от пользователей на Holochain?

На Holochain пользователи запускают только те приложения, которые они действительно используют. В этом есть смысл. Если я просто хочу запустить приложение, подобное Twitter, почему я должен запускать еще и вашу криптовалютную биржу, приложение для азартных игр или коллекционных мультяшных животных?
Это первый уровень шардинга, который происходит в Holochain. Вместо монолитного blockchain, как в Ethereum, где каждый dApp и транзакция происходят на одной цепи, каждое приложение Holochain представляет собой отдельную зашифрованную одноранговую сеть, которая взаимодействует только с другими пользователями этого приложения. По своей конструкции оно не может взаимодействовать с другими приложениями через сеть. Если вы хотите соединить потоки данных между приложениями, вы соединяете их локально, запуская оба приложения локально.

Даже этот первый уровень шардинга обычно пугает тех, кто занимается blockchain и считает, что безопасность сети зависит от количества узлов в сети, поэтому вы должны максимизировать общее количество узлов. Однако это является проблемой только в том случае, если система уязвима к атакам на консенсус большинства.
Меньшее доверие требует меньше работы и обеспечивает большую безопасность
В своем посте о моделях доверия Виталик признает, что существуют различные стратегии и уровни обеспечения доверия в децентрализованных сетях. Наиболее эффективным и безопасным подходом является доверие к наименьшему количеству узлов, которые ведут себя правильно.

Holochain

Blockchain требует, чтобы большинство узлов вели себя честно (N/2 от N). Но когда вы используете приложение Holochain, у вас уже есть правила проверки для этого приложения, запущенные локально. Это означает, что для некоторых вещей вам не нужно доверять кому-то еще, потому что вы можете проверить все сами (0 из N). Однако иногда вы получаете данные из сети, доверяя другим людям, которые их подтвердили (1 из N).
В Holochain мы достигаем 1 из N, потому что нужен всего один честный узел, чтобы обнаружить ненадлежащие данные, которые не прошли проверку. Затем они запускают иммунную систему Holochain и распространяют «ордер», содержащий криптографически подписанные действия мошенника в качестве доказательства его обмана. После этого все честные узлы блокируют мошенника и игнорируют его действия.
Этот более низкий порог доверия фактически обеспечивает второй уровень шардинга, так что даже в рамках одного приложения никому не нужно хранить все данные приложения. Holochain фокусируется на том, сколько копий данных должно быть доступно в Интернете (например, 50 копий), что определяет приблизительно количество узлов, необходимых для проверки, хранения и обслуживания этой части данных.
DHT (распределенная хэш-таблица) Holochain случайным образом определяет, какие узлы проверяют каждый фрагмент данных, направляя его на узлы, чей сетевой адрес ближе всего к хэш-адресу проверяемых данных. Рабочая нагрузка справедливо распределяется между всеми пользователями, обеспечивая устойчивость данных в общем пространстве хранения.

Взгляд на dApp реального масштаба: Twitter на Holochain

Давайте рассмотрим пример работы Twitter на реальном уровне активности: около 330 миллионов активных пользователей пишут твиты 1,1 раза в день (что является слишком большой активностью для blockchain Ethereum, даже если бы все его мощности были направлены только на это одно приложение). Если мы ориентируемся на 50 живых копий данных в DHT, то это означает, что мне потребуется хранить и подтверждать около 55 твитов в день (50 * 1,1) — раз в 26 минут.
Как это отразится на рабочей нагрузке, если она будет построена на Holochain? Вычислительная мощность: 0,00008% — каждые 26 минут я буду использовать около 1 миллисекунды процессорного времени одного из 8 ядер процессора на моем телефоне для проверки нового твита. Однако есть еще и регулярные сплетни с другими узлами, но обычно ваше устройство обнаруживает, что нет новых данных для подтверждения. Таким образом, мы можем даже поднять это значение еще на один или два десятичных знака только за счет накладных расходов на создание сетевых соединений. Давайте будем осторожны и скажем, что это может занять до 0,002% вашей вычислительной мощности. (~ 1/50,000 часть того, что предложил Виталик).
Пропускная способность: твиты небольшие, большая часть использования пропускной способности будет приходиться на проверку каждые несколько минут с коллегами, чтобы узнать, есть ли новые данные. А что касается обслуживания этих твитов, помните, что я всего лишь один из 50 валидаторов. Таким образом, я должен обеспечить примерно 1/50 часть нагрузки по обслуживанию этих твитов. При 707 средних подписчиках, ½ из которых может попасть в свою ленту, это 707/50/2 или около 8 раз в день для обслуживания каждого из 55 твитов. Обслуживание 440 твитов = 225 МБ в день плюс примерно 1 ГБ в день для сплетен. (~ 1/400 от того, что предложил Виталик).
Хранение: 55 твитов в день, плюс некоторые ссылки, означает, что через год вы будете хранить менее 20 ГБ данных. (~ 1/50 часть от того, что предложил Виталик)

Поэтому для размещения приложения Holochain Twitter (уровень активности которого примерно в 6 раз превышает пропускную способность и мощность всего blockchain Ethereum) требуется лишь малая часть ресурсов, которые Виталик предлагает пользователям предоставлять бесплатно для обеспечения безопасности Ethereum. Holochain невосприимчив к атакам большинства и не требует ни от кого платы за газ, потому что он полностью саморазмещаемый.

Может ли Holochain действительно стать мейнстримом?

Может ли Holochain действительно стать мейнстримом?

Стоит отметить, что, вероятно, потребуются годы, чтобы заставить всех пользователей Twitter перейти на Holochain для самостоятельного хостинга, даже если Twitter переведет свою инфраструктуру на такую децентрализованную архитектуру. Именно здесь на помощь приходит хостинг-фреймворк Holo.
Holo позволяет приложениям Holochain, которые обычно размещаются на собственном хостинге, обслуживаться пользователями из сети пирингового хостинга. Другими словами, если ваши пользователи ожидают просто открыть браузер, ввести веб-адрес и получить доступ к вашему приложению, вам может понадобиться предоставить им хостинговую версию.
В Holo есть валюта, которая платит хостерам за хостинг, предоставляемый ими для приложений Holochain, которые все еще должны обслуживать обычных веб-пользователей. Таким образом, вместо того чтобы платить Amazon или Google за размещение вашего приложения, вы платите сети равноправных хостинг-провайдеров в криптовалюте HoloFuel.
Вместо того чтобы плата за газ стоила в 1 миллиард раз больше, чем хостинг на Amazon (как это происходит на Ethereum), мы ожидаем, что цены на хостинг Holo будут более конкурентоспособными по сравнению с нынешними облачными провайдерами из-за низкого спроса на системные ресурсы, как указано выше.

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