Сравнение платформ Ardor и Plasma

Переведено с английского, источник https://www.reddit.com/r/Ardor/comments/6v8yao/ardor_vs_plasma/

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


Но в любом случае, в этой публикации я изложу свои мысли так, чтобы вы при необходимости смогли поправить меня если, я где - то что-то не понял. Надеюсь, вы сочтете эту публикацию полезной. :)
По моему мнению, ключевое различие между цепочкой Plasma на Ethereum и дочерней цепочкой на Ardor заключается в том, что узлы, защищающие сеть Ethereum (т. е. майнеры), не подтверждают транзакции цепочки Plasma напрямую, тогда как на Ardor все узлы сети Ardor, в том числе форжеры, подтверждают транзакции дочерней цепочки. Все другие различия между Plasma и Ardor такие как, залоги, которые валидаторы вносят в смарт - контракты в родительской цепочке; «доказательства мошенничества» (fraud proofs), которые позволяют лишать мошенников залога; механизм «массового выхода», который должен защищать от блокирующих атак, говорят о том, что ничего такого не требуется на Ardor, потому что форжирующие узлы напрямую проверяют транзакции дочерней цепочки.


На платформе Ardor используются аккаунты с ARDR форжингом, и каждая транзакция, которая влияет на баланс ARDR, записывается непосредственно в цепочку Ardor. Поскольку вся сеть (включая форжеры) проверяет транзакции дочерней цепочки, можно проверить любой блок в родительской цепочке и убедиться, что сеть на тот момент достигла консенсуса в отношении транзакций дочерней цепочки и, следовательно, последующее состояние аккаунтов дочерних цепочек было действительным. По индукции текущее состояние аккаунтов также действительно. (Я не заостряю внимание на деталях, но суть такова, я думаю.)


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


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


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


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


Так что же со всем этим делать?


На мой взгляд, основное сходство между Ardor и Plasma заключается в том, что оба уменьшают раздувание блокчейна, путем хранения хешей только блоков дочерних цепочек в родительской цепочке.

Однако есть несколько важных отличий:

  • В Ardor все узлы проверяют все транзакции дочерней цепочки, тогда как в узлах Plasma необходимо проверить только те транзакции, которые влияют на них. Это может значительно увеличить общую пропускную способность сети, поскольку большинство узлов могут игнорировать большинство вычислений, а именно все те, которые принадлежат совершенно несвязанным приложениям. Потенциально подобная функция, включенная в дорожную карту Ardor, делегировала бы проверку транзакций дочерней цепочки выделенным подсетям, но в официальном документе нет подробной информации.
  • Концепция «подтверждения» транзакции на Ardor не вызывает затруднений. Напротив, есть период времени в Plasma цепочке, когда блок можно прокрутить назад, даже после того, как валидатор хеширует его и добавляет в родительскую цепочку (я так думаю), потому что, возможно, что кто-то представит доказательства мошенничества. Я бы хотел лучше понять этот механизм.
  • Ardor действительно существует. :)

Переведено с английского, источник https://www.reddit.com/r/Ardor/comments/6v8yao/ardor_vs_plasma/