Не секрет, что когда дело доходит до сравнения блокчейн-технологий, очень легко удариться в трайбализм. Я работаю с блокчейнами с 2009 года, и за это время усвоил одну полезную привычку – рассматривать все компромиссы в дизайне и структуре, которые только возможны. Это не так просто, как выбрать “самый быстрый”, “самый масштабируемый”, “самый децентрализованный” или “с лучшей системой управления”. В этом посте будут рассмотрены некоторые из наименее обсуждаемых проблем, с которыми мы сталкиваемся в процессе выбора наиболее подходящей блокчейн-технологии для приложения.
Доверительное и бездоверительное управление
Существует множество различных типов систем управления в различных блокчейнах, и не все эти системы подходят для установления доверия. Например, делегированное доказательство работы (DPOW, как в Bitcoin и Ethereum) – это система голосования, в которой именно майнинг-пулы определяют, какое подмножество действительных транзакций будет включено в блоки. Предполагается, что узлы, производящие блоки, не обладают сколь-нибудь “более высоким уровнем доверия”, чем кто-либо другой, и поэтому они “не могут навредить” путём производства блоков.
В системах делегированного доказательства доли (DPOS) производители блоков выбираются путём голосования держателями токена. В основе такой схемы лежит предположение, что этим избранным узлам можно доверять некоторые вещи, которые могут нарушить работу сети, если это доверие будет использовано во зло. Давайте рассмотрим два примера из сети EOS:
- Оракулы для исполняемой среды вычислений (в этом случае один злоумышленник может остановить всю сеть, сообщая ложные сведения об отсутствии бесконечного цикла или занижая выставляемые счета).
- Развёртывание обновлений системного контракта (для нанесения вреда сети требуется сговор более ⅔ участников).
В сети, где предложить блок может любой участник, все валидаторы должны иметь средства для объективной оценки потраченного времени CPU. Так работает Ethereum, однако это несёт в себе последствия в виде более низкой производительности и дополнительных векторов атаки, созданных несоответствием между их целенаправленно симулируемой тарификацией и реальным временем вычислений.
Другие системы доказательства доли, такие как Ouroboros, позволяют любому аккаунту производить блоки, симулируя майнинг с размещением в доле. Это существенно ограничивает их системы смарт-контрактов, вынуждая их функционировать как Ethereum с объективным подсчетом ресурсов. Когда у вас есть открытый набор производителей без “шлюза доверия”, вам придётся добавить в ваш код некоторые компромиссы в плане производительности, чего можно избежать с помощью системы “доверяй, но проверяй”, такой как DPOS. Выбранный вами алгоритм консенсуса влияет на гораздо большее количество аспектов, чем просто на достижение консенсуса.
Устойчивость к цензуре
Проблема, с которой сталкиваются все блокчейны, заключается в том, как пользователю гарантируется, что его “действительная транзакция” на самом деле будет записана в цепочке без вмешательства других. В принципе, чем больше есть “независимых” и “неподкупных” организаций, производящих и подтверждающих блоки, тем больше у вас шансов найти ту, которая согласится включить вашу транзакцию. В худшем случае вам, возможно, придётся создать свой собственный блок.
История устойчивости к цензуре не заканчивается на фразе “вы не подвергнетесь цензуре, если согласитесь купить оборудование для майнинга”. Единственный надёжный способ избежать цензуры – это обладать 51% майнинговой мощности. Без наличия 51% мощности операторы майнинг-пула могут просто проигнорировать любой блок, где есть транзакция, которую они хотят подвергнуть цензуре. Это означает, что управлению на блокчейне присуще заданное ещё биткоином “доверие”, когда владельцы оборудования (то есть избиратели) выбирают майнинг-пулы, которые с меньшей вероятностью будут практиковать цензуру.
В этом отношении делегированное доказательство работы и делегированное доказательство доли реализуют форму “доверительного управления” в том смысле, что хеш-мощность и токены широко распределены среди достаточно большого числа независимых избирателей. Однако после того, как избиратели проголосуют, требуется всего 3-4 представителя (пула), чтобы подвергнуть цензуре транзакцию в Bitcoin или Ethereum, и 8 или более, чтобы остановить цепочку на DPOS в знак протеста против конкретной действительной транзакции.
Объективная и субъективная окончательность
Блокчейны на доказательстве работы, как и некоторые цепочки на доказательстве доли, лишены объективной окончательности. Вместо этого они предоставляют “высокую вероятность окончательности”, которая растёт с течением времени. Можно сказать, что следующие цепочки обладают субъективной окончательностью:
- Bitcoin / Ethereum (Delegated Proof of Work)
- Bitshares / Steem (Delegated Proof of Stake)
- Cardano (Ouroboros)
А следующие блокчейны обладают объективной окончательностью:
- EOSIO (BFT DPOS и BOS)
- Hyperledger
- Hashgraph
- XRP
Обладающие византийской отказоустойчивостью алгоритмы требуют наличия закрытого набора известных валидаторов, чтобы достичь окончательности, и, как следствие, если ⅓ этого известного множества отключится, достичь окончательности будет невозможно. Субъективная окончательность всегда оставляет возможность представить доказательства существования лучшей цепочки, что заставит всех отказаться от вашей нынешней цепочки.
Системам с открытым доступом, как правило, недостаёт окончательности и хоть какого-либо “заслуженного доверия”, поэтому они ограничены и в плане производительности, и управления, и задержки.
Простота межчейновой коммуникации (Inter-blockchain Communication – IBC)
Выбранная вами технология блокчейна и алгоритма консенсуса может повлиять на то, какой тип IBC возможен, и на скорость этой IBC. Чтобы увидеть этот механизм в действии, попробуйте написать на EOSIO смарт-контракт для обработки заголовков блоков и проверки транзакций сети Биткоин. В какой момент ваш смарт-контракт может считать транзакцию биткоинов окончательной? Известны случаи, когда даже после 100 блоков цепь реорганизовалась. Любое количество подтверждений, которое вы выберете, сопряжено с риском того, что операция может быть отменена.
Теперь предположим, что вы выполняете в другой цепочке неизменяемое действие, конечность которого основана на IBC из цепочки без окончательности. На практике IBC с участием цепочек, которые не обладают объективной окончательностью, требует очень долгого времени ожидания, призванного уменьшить риск реорганизации цепочки из-за допустимости аннулирования. У данного или вашего смарт-контракта на депозит биткоина должен быть какой-то способ нивелировать ущерб в том случае, если депозит будет отменен после 6 и более подтверждений.
IBC между цепочками с субъективной окончательностью вполне возможна, однако мало что вас спасёт, если вам нужна двусторонняя коммуникация. Для полноценной связи двух цепочек с субъективной окончательностью требуются задержки, аналогичные отправке сигнала на аппарат в дальнем космосе, когда время прохождения туда и обратно измеряется в часах или днях.
В противоположность этому, IBC между цепочками с объективной окончательностью может осуществляться за считанные секунды.
И наконец, сама теоретическая возможность взаимодействия двух цепочек вовсе не означает, что это будет легко. Лёгкость коммуникации отчасти зависит от того, насколько просто создать лёгкий клиент в другой цепочке в виде смарт-контракта. Это, в свою очередь, зависит от сложности и объёма заголовков и доказательств Меркла, а также от надёжности и характеристик языка конкретного смарт-контракта. Слишком много или слишком мало полномочий в смарт-контракте – и вы убьёте весь потенциал для IBC.
В качестве примера сравните, насколько проще для EOS эмулировать Ethereum, чем для Ethereum эмулировать EOSIO!
Заключение
Поскольку дебаты по поводу алгоритмов консенсуса и децентрализации не утихают все эти годы, крайне важно, чтобы мы знали полную цену всех подобных технологических компромиссов. Что хорошего в “более децентрализованном алгоритме консенсуса с открытым доступом”, если это означает, что вы получаете блокчейн с субъективной окончательностью, межчейновой коммуникацией с высокой задержкой и без возможности использовать принцип “доверяй, но проверяй” на уровне управления?
Правда, с другой стороны, риски существуют и для алгоритмов, которые предлагают окончательность.
Помните: всякая магия имеет свою цену, и убедитесь, что вы прочитали даже самый мелкий шрифт, прежде чем приписать свою организацию к какой-либо конкретной платформе смарт-контрактов.
Оригинал поста: ЗДЕСЬ
@blockchained, Поздравляю!
Ваш пост был упомянут в моем хит-параде в следующей категории: