Обратите внимание, что даже исправность программного обеспечения, которое вы используете, обычно зависит от модели доверия «несколько из N»: предполагается, что кто-нибудь заметит ошибки в коде и сообщит о них. С учетом этого факта желание перейти от «1 из N» к «0 из N» в каком-то другом аспекте приложения часто выглядит как попытка установить в доме мощную стальную дверь и оставить окна открытыми.
Есть еще одно важное различие: какова будет реакция, когда доверие будет подорвано? В блокчейнах наиболее распространены два типа сбоев – сбой жизнеспособности и сбой безопасности. Сбой жизнеспособности – это событие, при котором вы временно не можете сделать то, что хотите сделать (например, вывести монеты, добавить транзакцию в блок, прочитать информацию в блокчейне). Сбой безопасности – это событие, при котором происходит что-то, чего система не должна была допустить (например, недействительный блок попадает в цепочку блоков).
Вот примеры моделей доверия нескольких протоколов второго уровня[94]. «Малым N» я обозначу набор участников самой системы второго уровня, а «большим N» – участников блокчейна, исходя из того, что сообщество протокола второго уровня обычно меньше сообщества блокчейна. Кроме того, термин «сбой жизнеспособности» здесь ограничен случаями, когда монеты застревают на значительное время; под это определение не подпадает ситуация, когда вы лишены возможности пользоваться системой, но можете почти мгновенно вывести средства.
▓ КАНАЛЫ (ВКЛЮЧАЯ КАНАЛЫ СОСТОЯНИЯ И КАНАЛЫ LIGHTNING NETWORK): доверие «1 из 1» для жизнеспособности (ваш контрагент может временно заморозить ваши средства, хотя можно смягчить ущерб, если разделить монеты между несколькими контрагентами), доверие «N / 2 из большого N» для безопасности (атака 51 % на блокчейн может похитить ваши монеты).
▓ PLASMA (при условии централизованного оператора): доверие «1 из 1» для жизнеспособности (оператор может временно заморозить ваши средства), доверие «N / 2 из большого N» для безопасности (атака 51 % на блокчейн).
▓ PLASMA (при условии полудецентрализованного оператора, например DPoS): «N / 2 из малого N» для жизнеспособности, «N / 2 из большого N» для безопасности.
▓ OPTIMISTIC ROLLUP: «1 из 1» или «N / 2 из малого N» для жизнеспособности (зависит от типа оператора), «N / 2 из большого N» для безопасности.
▓ ZK ROLLUP: «1 из малого N» для жизнеспособности (если оператор не включит вашу транзакцию, вы можете вывести средства, а если оператор в тот же момент не включит ваш вывод средств, он больше не сможет создавать пакеты, и вы сможете вывести средства самостоятельно с помощью любой полной ноды системы роллапа); риски сбоя безопасности здесь отсутствуют.
▓ ZK ROLLUP (С УЛУЧШЕНИЕМ ЛЕГКОГО ВЫВОДА СРЕДСТВ): риски жизнеспособности и безопасности отсутствуют.
Напоследок остается вопрос о стимулах: чтобы действовать согласно вашим ожиданиям, должен ли актор быть альтруистичным, слегка альтруистичным или ему достаточно быть просто рациональным? Система, которая по умолчанию опирается на поиск доказательств мошенничества, слегка альтруистична, хотя степень альтруизма зависит от сложности вычислений и есть способы изменить правила игры в сторону обычной рациональности.
Помощь другим пользователям при выводе средств из ZK rollup будет рациональной, если добавить возможность микроплаты за эту услугу, поэтому причин для беспокойства о том, что вы выйдете из роллапа ни с чем,
Вывод. Когда кто-то говорит, что система «зависит от доверия», поинтересуйтесь, что именно они имеют в виду: «1 из 1», «1 из N» или «N / 2 из N»? Нужно ли участникам этой системы быть альтруистичными или достаточно простой рациональности? И если быть альтруистичными, то какой ценой? Что случится, если доверие будет подорвано, – просто придется подождать несколько часов или дней либо ваши активы застрянут навечно? В зависимости от ответов на эти вопросы будет меняться и ваше решение о том, хотите ли вы использовать эту систему.
Криптогорода
VITALIK.CA
31 октября 2021 года