Посторонним в

Блог-форум Винни Пуха
 
ФорумФорум  ЧаВоЧаВо  ПоискПоиск  ПользователиПользователи  ГруппыГруппы  РегистрацияРегистрация  ВходВход  

Поделиться | 
 

 Проблемы масштабирования blockchain и DAG

Предыдущая тема Следующая тема Перейти вниз 
АвторСообщение
Winnie
Admin


Сообщения : 941
Дата регистрации : 2015-06-10

СообщениеТема: Проблемы масштабирования blockchain и DAG   2018-07-23, 05:35


В отличие от блокчейнов, которые оперируют блоками, когда каждый очередной блок создаётся и добавляется к цепочке блоков регулярно через примерно одинаковые промежутки времени, DAG позволяют каждой транзакции напрямую связываться со следующей. Это означает, что не нужно ждать следующего блока для подтверждения транзакции, а глобальный реестр обновляет каждая транзакция.

Эта архитектура позволяет DAG принести два основных улучшения. DAG могут обрабатывать транзакции почти мгновенно, за долю времени, которое затрачивается в блокчейне. DAGчейны, такие как IOTA и Nano, также удаляют традиционных майнеров из уравнения, что делает транзакции быстрыми и свободными; и слава богу. Они дают надежду на конец проблемы масштабирования, присущую блокчейн проектам, и открывают путь к всемирным сетям, поддерживающих такие системы, как Интернет Вещей (IoT, Internet of Things) и развитую индустрию финансовых платежей.

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


Движение по горизонтали

Чтобы понять потенциальные проблемы DAG, важно понять, как они работают. DAG - ориентированные графы без направленных циклов. На практике это означает, что в отличие от цепочки блоков, которые работают по вертикальной архитектуре (майнеры обрабатывают блок, этот блок добавляется в блокчейн, майнеры делают следующий блок и т.д.), DAG используют горизонтальную архитектуру.

Это позволяет, как было сказано ранее, транзакциям быть связанными с другими транзакциями. Например, DagCoin (оригинальная реализация DAG) и IOTA требуют, чтобы каждая ожидающая новая транзакция обрабатывала соответственно одну и две другие транзакции. В сущности мы по-прежнему имеем дело с PoW майнингом, только происходит обработка не блоками, а транзакциями, каждый может обрабатывать свою собственную транзакцию.

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

Это также позволяет DAG проектам масштабироваться до большего количества транзакций в секунду (tps), чем блокчейн, для удовлетворения будущих потребностей. В отличие от блокчейна, где большее количество участников в сети и больше обрабатываемых транзакций до сих пор приводило к замедлению сети, в DAG больше участников и транзакций лучше, поскольку это теоретически позволяет быстрее разрешить больше транзакций. В то время как Bitcoin и Ethereum в настоящее время располагают 7 и 15-20 tps соответственно, IOTA и Nano заявляют, что в настоящее время возможно ~ 1000 и 7000 tps соответственно. Это также означает, что комиссии за транзакции не взимаются - ваша комиссия заключается в обработке других транзакций.

Казалось бы, всё прекрасно.

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


Отсутствует глобальное состояние

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

Однако DAG работают по другому. Поскольку глобальное состояние здесь отсутствует (вследствие подхода "от транзакции к транзакции"), глобальное состояние DAG таково, что оно изменяется каждый раз, когда происходит очередная транзакция.

Это не проблема, если все узлы могут видеть все транзакции, потому что узлы всё равно смогут проверять исторические транзакции, чтобы обеспечить отсутствие двойных трат. Например, так работает IOTA Tangle, при этом Tangle полностью сохраняется на каждом узле. Поскольку размер базы данных будет слишком большим, если оставить её бесконтрольной, а ёмкость жёсткого диска физически ограничена, база данных будет обрезаться по мере необходимости. Обычно это реализуется через снимок сети (snapshot), позволяя узлам удалять все транзакции, предшествующие снимку.

Это не оптимальное решение, так как таким образом теряется одно из преимуществ блокчейна - неизменный и постоянно действующий реестр записей, которую он хранит. Чтобы позволить DAG избежать этого необходимого удаления, DAG можно разделить на разные фрагменты (shard). Это работает по аналогии с разбиением на части блокчейна - DAG разделяется на множество отдельных мини-DAG. Обработка 1/100 части DAG происходит менее интенсивно, чем обработка его целиком (потому что теперь нужно проверять гораздо меньшее количество подмножеств транзакций), и таким образом больше транзакций можно обрабатывать в меньшем временном интервале. Хотя все фрагменты всё ещё работают с одним и тем же протоколом, теперь каждый из них видит только часть текущих транзакций и связанную с ними историю.

Но решение одной проблемы порождает ряд других проблем.

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

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

Кроме того, в отличие от блокчейн проектов, таких как биткоин, где блоки постоянно добываются майнерами в "унисон", хотя и в конкуренции, в DAG хеширование происходит только при обработке новых транзакций. Злоумышленникам нужно получить более 33% от общей мощности хеша, чтобы иметь возможность атаковать сеть, даже до того, как она будет фрагментирована, и в отсутствие постоянного майнинга (например, IOTA в настоящее время работает между 1,2-2,4 tps, подавляющее большинство из которых являются пустыми транзакциями) плюс минимальный уровень транзакций делает его уязвимым для атаки.

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

Как бы то ни было, децентрализованная безопасность приносится в жертву ради более высокой производительности.

В настоящее время единственный способ для DAG гарантировать отсутствие двойных расходов и атаки 34% - с помощью централизованной власти. Byteball, ещё один DAG проект, имеет 12 узлов-свидетелей (Witness Nodes), а IOTA имеет координатора (The Coordinator).

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

Такие централизованные решения задуманы как временные решения для сетей, находящихся в зачаточном состоянии, но до сих пор нет доказательств того, что они в состоянии отказаться от этих костылей.

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

Подумайте, что произойдет, если злоумышленнику удастся вывести значительную часть узлов из строя (либо путем атаки на систему, либо путем избирательной атаки, например, на силовые узлы сети). Означает ли это, что централизованная власть возобновится? А что произойдет в случае DDoS атаки на сами централизованные узлы? Ограниченное количество узлов намного легче атаковать, чем тысячи, распространяемые по всему миру. Одной из основных отправных точек биткоина было то, что это была распределенная сеть, распространённая по всему миру, и поэтому её грандиозно трудно закрыть.

Существуют и другие проблемы, связанные с DAG, которые будут препятствовать масштабированию до требуемых уровней.


Жизнь в реальном мире

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

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

DAG способны масштабироваться за пределы существующих блокчейнов. Но так же, как и блокчейны, они ограничены в масштабировании. Сеть пойдёт ко дну под собственным весом, если её не будет поддерживать какая-либо централизованная власть или революционная (и еще никому неизвестная) новая технология шардинга, которая не ставит под угрозу безопасность, децентрализацию или производительность. DAG, так же как и блокчейны, вынуждены бороться за масштабирование из-за фундаментальных основ своего дизайна.
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com
Winnie
Admin


Сообщения : 941
Дата регистрации : 2015-06-10

СообщениеТема: Почему блокчейны не масштабируются   2018-07-23, 08:01


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

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

Главным достижением блокчейна является то, что он решает вопрос о том, как гарантировать доверие между двумя несвязанными сторонами без необходимости централизованной третьей стороны. Эту проблему блокчейн решил. Однако он не имеет волшебного решения, когда дело доходит до обработки транзакций. PayPal может обрабатывать около 200 транзакций в секунду (tps). VISA заявляет пиковую пропускную способность до 56000 tps, хотя средние суточные нагрузки приближаются к 2000. Биткоин способен показать ~ 7 tps, Ethereum 15-20 tps (и меньше, если это токены, а не ETH). Это делает блокчейн сети значительно медленнее простой репликации выхода одного платёжного процессора, делая недостижимой мечту о массовом их использовании в платёжных системах (которое потребует не менее сотен тысяч tps).

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

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

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

Это компромисс, который возникает между блокчейном и децентрализацией. Существует триллема между децентрализацией, безопасностью и масштабируемостью. Только два из трёх пунктов достижимы, но не сразу все три.

Все алгоритмы масштабирования блоков, включая увеличение размера блока, фрагментация, сайдчейны и протокольные решения, такие как Lightning Network, должны оцениваться по трём критериям:
Остается ли сеть децентрализованной?
Сохраняет ли сеть безопасность?
Позволит ли это, по крайней мере, подготовить сеть к масштабированию до уровней, необходимых для массового принятия?


Увеличение размера блока

Одна из наиболее распространённых попыток масштабирования отражена в дискуссиях о размерах блоков, которые в конечном итоге привели к хард форку Bitcoin и появлению Bitcoin Cash в августе 2017. Проще говоря, увеличивая размер блока, вы можете обрабатывать больше транзакций в одном и том же таймфрейме.

Биткоин был в центре битвы за размеры блоков, но если мы хотим подготовиться к будущему, в котором блокчейн лежит в основе Веб 3.0, то эти дебаты не имеют значения. Средний размер транзакции 500 байтов при всего лишь 2000 tps приведёт к размерам блоков 1 ГБ. Итак, нет такого допустимого размера блока, который позволит обрабатывать объём необходимой информации, не возвращая нас к исходной проблеме; в определённый момент размеры блоков становятся слишком большими, чтобы поддерживать децентрализованную сеть.

По мере увеличения размеров блоков тем выше требования (объём памяти, мощность процессора, пропускная способность). Это приводит к риску централизации, так как всё меньше и меньше узлов могут участвовать в обработке инфрмации. Кроме того, сеть может двигаться настолько быстро, насколько позволят составляющие её узлы; но когда блоки превысят определённый размер, для записи блоков всеми узлами сети потребуется слишком много времени. Это приведёт к запаздыванию блоков, и система упрётся в потолок своей пропускной способности.

Увеличение размеров блоков увеличит допустимые tps, но лишь до некоторого предела - предел, который будет достигнут скорее раньше, чем позже. Поэтому необходимо найти другие решения.


Фрагментация блокчейна (sharding)

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

Фрагментация даёт преимущества, когда дело касается масштабирования, а именно, гораздо легче обрабатывать 1/100 часть блокчейна, нежели весь блокчейн. Но такой подход также создаёт новый набор проблем. Первая связана с проблемой двойных расходов, так как существует несколько цепочек, работающих одновременно, которые необходимо согласовать, чтобы избежать плохого сценария, когда один и тот же актив проводится дважды.

Таким образом, для фрагментации требуется создание сети с таким же уровнем безопасности, как и раньше, несмотря на то, что узлы теперь обрабатывают гораздо меньший набор транзакций. Все дочерние цепи должны иметь полную прозрачность в более широкой сети. Узлы по-прежнему должны согласовывать все обрабатываемые транзакции, но теперь им придётся доверять другим узлам, если сеть разделяется на части.

По мере того, как сеть фрагментируется, вычислительная мощность, необходимая для атаки каждой дочерней цепочки, значительно снижается, увеличивая вероятность атаки 51%. Для решения этой проблемы переходят с POW на POS, уровень масштабирования увеличивается, но это, вероятно, приведет к объединению узлов в пулы и к той же проблеме, что и централизация майнеров.

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


Взаимодействия вне блокчейна

Каналы взаимодействий вне блокчейна - это инструмент, посредством которого ряд взаимодействий блокчейна выполняется за его пределами, как бы "offline". Для двух (или более) участников часть взаимодействий блокчейна "замораживается" и передаётся им как отдельный "канал взаимодействий" (state channel). Эти участники могут делать изменения / транзакции между собой на канале взаимодействия так же, как обычно, а затем, после того, как они завершат взаимодействия, участники передают этот канал обратно в блокчейн. После чего блокчейн обновляется с новыми данными, и эта часть взаимодействий в блокчейне разблокируется.

Это позволяет совершать более быстрые транзакции (поскольку они не связаны с блокчейном, для их проверки требуется мéньшая вычислительная мощность) и при более низких комиссиях. Примером этого может служить Lightning Network. К сожалению, это решение будет неполноценным при поддержании децентрализованной сети, поскольку оно уязвимо для экономической цензуры. В то время как в случае обычной блокчейн транзакции любой майнер может обрабатывать транзакцию в блоке (и, следовательно, не может быть никакой цензуры), Lightning Network полагается на возможность маршрутизации платежей через центры без цензуры. Если ни один такой центр не имеет канала с анонимным центром, с которым вы хотите произвести транзакцию, вы не сможете произвести платёж. Следовательно центры Lightning Network могут ограничить маршрутизацию вашей транзакции, противодействуя децентрализованному духу блокчейна.


Масштабирование без централизации

Чтобы блокчейны стали широко распространенными общедоступными сетями, они должны иметь возможность масштабироваться, не жертвуя руководящим принципом децентрализации.

Распределенные системы можно масштабировать двумя способами:
Горизонтально (добавляя узлы)
Вертикально (увеличивая ресурсы каждого узла)

Проблема блокчейна заключается в том, что добавление бóльшего количества узлов, как было объяснено, приводит к замедлению работы сети. Масштабирование по вертикали также является нестандартным, поскольку оно очевидно уменьшит количество узлов и, таким образом, приведет к централизации. Нет ни одного блокчейн проекта, который бы решил эту проблему.

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

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

Альтернативой является свернуть с пути, по которому невозможно достичь желаемого места назначения.
Вернуться к началу Перейти вниз
Посмотреть профиль http://free.gta-ru.com
 
Проблемы масштабирования blockchain и DAG
Предыдущая тема Следующая тема Вернуться к началу 
Страница 1 из 1
 Похожие темы
-
» Проблемы с установкой Аркон 2005.02 на Win 7x64
» Глюки Arcon
» Проблемы со входом на форум

Права доступа к этому форуму:Вы не можете отвечать на сообщения
Посторонним в :: Децентрализованные сети :: Radix-
Перейти: