📝 Реальное доказательство консенсуса (перевод статьи @dantheman)
С тех самых пор, как появился Биткойн, люди экспериментируют с более энергоэффективными альтернативами затратного алгоритма Доказательства Выполнения Работы (PoW). Все новые алгоритмы подвергаются тщательному сравнению с “доказанной” моделью работы Биткойна, чтобы узнать предлагают ли они тот же уровень безопасности, к какому привыкли пользователи Биткойн. Безопасность - это многомерный концепт, с трудом поддающийся измерению. Истинная проверка безопасности состоит в том, достаточен ли ее уровень для защиты некоей цели; следовательно, трудно измерить уровень безопасности, если мы четко не определим цель, требующую защиты.
Основной целью этих алгоритмов является как можно более быстрое достижение не подверженного коррупции всеобщего консенсуса. Балансы аккаунтов считаются находящимися в безопасности, когда они включены в неизменяемый консенсус. Еще одна цель состоит в предотвращении цензуры транзакций, так чтобы все пользователи могли пользоваться своими балансами. Конечная цель - усложнить любое изменение правил, приводящее к ущербу меньшинства держателей.
Мы будем расценивать всё, что влияет на эти цели, как атаку, которая должна быть сведена на нет блокчейном и протоколами сети.
Безопасность сродни атаке
Безопасность субъективна и неотделима от типов атак, которые она должна предотвращать. Стена высотой в милю может уберечь от продвижения армии, но бесполезна против воздушной атаки. Невозможно говорить о безопасности не ссылаясь на конкретный тип атаки.
Надежная система безопасности имеет средства защиты от стольких различных векторов атак, скольких возможно. Сравнивая два различных алгоритма консенсуса блокчейн, вы должны сперва сравнить, как они ведут себя при разнообразных сценариях атаки, и уже после субъективно оценить какая атака наиболее вероятна и вредоносна.
Децентрализация
Децентрализация - это волшебное слово, которое многие воспринимают как лекарство от всех болезней. Такая уверенность основана на том факте, что децентрализация, конечно, решила много проблем, но как и во многих вещах в ней присутствует точка ослабления или негативных эффектов. Каждый кусочек децентрализации имеет для сети фиксированную стоимость, но при этом генерирует меньше ценности, чем предыдущий. В какой-то момент стоимость следующего кусочка превысит приносимую им ценность. Это чисто субъективное оценочное суждение, так как не существует объективной меры экономической ценности.
Чтобы максимизировать степень децентрализации, нужно обязательно минимизировать стоимость каждого кусочка децентрализации. Это максимизирует степень децентрализации, которой можно будет достичь до того, как стоимость дополнительной децентрализации превысит приносимую ею ценность.
Исходя из этого можно заключить, что наибольшую выгоду от децентрализации вы получите, когда сеть вырастет с одного человека до двух. Это увеличение на 100%. Рост с двух человек до трех -это увеличение всего в 50%. Рост со ста человек до ста одного - это увеличение на малозначимый 1%.
Децентрализация - средство достижения надежного неизменяемого консенсуса, сопротивления цензуре и затрудненного изменения правил без принятия их большинством. Не стоит рассматривать децентрализацию как самоцель.
Почему блокчейн?
Всё, что можно построить на блокчейне, можно построить и на обычном традиционном веб-сайте, так же как и любой веб-сайт может быть построен на блокчейне. И веб-сайты, и блокчейны собирают аутентифицируемые действия пользователя и используют их для обновления базы данных. Основное отличие в том, что традиционные веб-сайты производят единоразовую аутентификацию на стороне сервера, которая не оставляет аудиторского следа, тогда как блокчейны записывают само-аутентифицируемые действия, которые могут быть заверены кем и когда угодно, и не могут быть модифицированы без изменения всего набора данных.
Решение использовать блокчейн имеет намного большую стоимость в сравнении с традиционным набором LAMP (Linux, Apache, MySQL, PHP/Perl/Python). Большая часть этих расходов обусловлена незрелостью имеющейся инфраструктуры для создания и развертывания новых блокчейн приложений. Чтобы уравновесить количество времени и денег, затрачиваемых на запуск приложения на блокчейне, блокчейны должны предлагать сопоставимые преимущества.
Децентрализованная аутентификация
Это наиболее важное преимущество блокчейна, целиком основанное на безопасности децентрализованного хранилища паролей пользователей и применении 256-битных паролей (приватных ключей). В такой модели ни один сервер не может быть взломан для получения доступа к аккаунту. Ни один аккаунт не может быть изменен, если он не произвел подтверждаемого аудиторского следа из само-аутентифицируемых действий пользователя, который доказывает действительность состояния аккаунта.
Децентрализация аутентификации означает, что система в целом обладает более высоким уровнем безопасности, но переносит большую часть ответственности за нее с предоставителя сервиса на пользователей. Отдельные пользователи менее подготовлены к защите своего аккаунта, чем обученные системные администраторы.
В совокупности децентрализованная аутентификация обеспечивает общую безопасность лучше, потому что все атаки разобщены и направлены на отдельных пользователей. Пользователи страдают от потери ключей, невосстановимости аккаунтов и взлома собственных компьютеров. Если бы все пользовательские ключи были обезопашены в той же степени, что и правильно управляемый сервер, то итоговая стоимость обеспечения безопасности с децентрализованной аутентификацией была бы намного выше, чем с ее централизованным аналогом.
Такой тип безопасности - хорошее решение, когда мишенью атаки является вся ваша платформа целиком. Этот случай особенно относится к платформам, которые обслуживают людей, подвергающихся политическому преследованию, таких как пользователи криптовалют или сторонники свободы слова. Тем не менее, транзакциями с мультиподписью и другими протоколами можно обеспечить безопасность пользователя на блокчейн так же легко, как это производится с помощью централизованных серверов сегодня.
Неизменяемый аудиторский след
Неизменяемый аудиторский след означает, что все и каждый могут математически доказать, что ничего не было изменено, и база данных находится в правильном состоянии. Это значит, что ни один системный администратор не может манипулировать вашим аккаунтом и обходить аутентификацию. А значит, никто не может выдать себя за вас, просто изменив базу данных.
Чтобы сохранить аудиторский след неизмененным, вам нужно иметь датированный публичный список заголовков блоков. Чем больше человек хранят этот подписанный / датированный список, тем сложнее становится изготовить поддельную альтернативную бухгалтерскую книгу не попавшись. В общем-то, людям даже не нужно знать содержимое блоков, чтобы компания могла доказать аудиторам, что история блоков не была изменена.
Любая компания может вести запись всех своих действий в приватном блокчейне, а после публиковать хэш этих действий, который будет подписываться, записываться и фиксироваться другими различными людьми и организациями. Даже если содержимое этого блокчейна целиком централизовано и доступно только сотрудникам компании, эта система будет эффективно предотвращать подгонку бухгалтерских отчетов постфактум.
Реплицируемая база данных
Последней особенностью блокчейнов является крайняя распределенность их копий по всему земному шару. Эта распределенность защищает их от локальных человеческих и естественных катастроф. Сама структура блокчейна, например, список с единственной возможностью добавления записи, зарекомендовала себя как надежно реплицируемая, что непосредственно способствует предотвращению подлогов и возникновения альтернативных историй.
Требуемый уровень распределенности по большей части определяется доступностью политических зон и степенью давления, которое способны оказывать правительства в стремлении к контролю. Иметь по одной полной копии в каждой стране мира более чем достаточно, чтобы удостовериться, что ни одна страна или коалиция не способны удалить все копии.
Тем, у кого есть копия базы данных, не нужна способность вносить в нее записи, чтобы защитить неизменяемый универсальный консенсус. Каждая копия содержит информацию, которая необходима для доказательства соответствия её точности и аутентичности перед другими копиями. Массовое реплицирование разработано специально для защиты целостности и предотвращения изменения предыдущих транзакций. Впрочем, его недостаточно для защиты от цензуры будущих транзакций.
Единое Доказательство консенсуса
Единое доказательство консенсуса возможно, если все стороны системы/сети/блокчейна будут подписывать каждую транзакцию, чтобы подтвердить, что они её распознают и принимают вносимое ею изменение текущего состояния. В случае с биткойном, это как если бы для подтверждения вашей транзакции требовалась бы подпись всех остальных пользователей биткойна. Чем больше сторон задействовано, тем сложнее становится переписать историю, потому как чтобы произвести альтернативную историю потребуется экспоненциально возрастающий уровень единодушного согласия. Для этого нужно убедить каждого поменять историю без оговоренных правил касательно того, какой должна быть эта альтернативная история. Обычно изменения в истории приносят пользу немногим за счет всех остальных. Это значит, что как только достаточно большое число людей условилось на одной версии истории, становится почти невозможно заставить их отречься, потому что у них нет никакого стимула делать это и все стимулы так не делать.
Было бы крайне непрактично заставлять миллионы людей непосредственно подтверждать каждое действие других пользователей в реальном времени; тем не менее, для каждого действия пользователя подтверждать все предыдущие действия других пользователей, включая ID главного блока в транзакцию - задача весьма тривиальная. Со временем все пользователи совершают действия, тем самым формируя консенсус путем прямого подтверждения всеми пользователями.
В блокчейне Steem ежедневно активны 54% всех долей (stake). 60% долей активны как минимум раз в неделю. Эти цифры сбалансированы относительно долей и не включают в себя активность аккаунта основателя - @steemit, который контролирует около 45% сети. Если учитывать аккаунт @steemit, еженедельная активность составляет 78% или даже больше. Никакой объем proof-of-work (доказательства выполнения работы) не сможет предоставить лучшего доказательства консенсуса, чем 54% прямых подтверждений от держателей долей (стейкхолдеров).
Изучение случая с Биткойном
Представьте на секунду, что биткойн-транзакции были зафиксированы в особом форке и не могут быть перенесены. В такой ситуации показатель активности долей схож со средним количеством "уничтоженных дней Биткойна” (Bitcoin days destroyed). В случае с биткойном, ежедневное количество перемещенных уникальных BTC составляет в среднем 100,000. Это означает, что стоимость форджинга сети Биткойн составляет не $1.5 млн долларов эквивалентных хэш мощностям (hash power), а $77 млн долларов эквивалентных уникальным балансам, перемещаемым каждый день. По прошествии недели они могут вырасти до $500 млн долларов баланса. В процентном соотношении сеть Биткойн прямо подтверждается менее чем 0.7% в день и менее чем 5% в неделю.
Уровень подтверждения Биткойна возрастет, если люди будут пользоваться им так же часто, как пользуются кредитными картами (ежедневно). К сожалению, пока не похоже, что Биткойн масштабируется до такого уровня.
Взвешивание долей против Всеобщего голосования
Активность, взвешенная относительно долей - это объективный параметр, защищенный от атак Сибиллы, который все же может быть искажен в сторону мнения нескольких крупных держателей. Это именно тот случай, где репутация аккаунта и личности предлагает нам альтернативный субъективный параметр: всеобщее голосования. При таком критерии все аккаунты взвешиваются на равных, вне зависимости от их доли. Этот процесс несколько субъективен, так как крупные держатели могут подделать его, распределив свои средства между несколькими аккаунтами. Цель введения этого параметра - показать, что “массы” легко могут идентифицировать такую группировку и действовать соответствующе. Чем дольше длится окно активности, тем больше становится разрыв между сговорившимися аккаунтами и реальным блокчейном.
Консенсус Сети Доверия
Когда все аккаунты подтвердили блокчейн своими действиями, становится возможно заверить блокчейн с помощью Сети Доверия. Если вы доверяете нескольким главным биржам и знаете, что они регулярно производят выплаты, то вы можете игнорировать блокчейны, которые не имеют подтверждения от этих аккаунтов. Биржам не нужно производить блоки самостоятельно, они просто должны продолжать проводить транзакции как обычно.
У каждого человека свой взгляд на вещи, но с некоторым достаточным пересечением этих взглядов в итоге все станут доверять одному и тому же блокчейну. По статистике, любых двух людей на этой планете разделяют всего 6 уровней рукопожатий. Это означает, что если все будут доверять только тем, кого знают, то менее чем через 6 доверенных связей вы сможете доверять каждому на этой планете.
Когда дело касается блокчейна, единственная информация, сообщениям о которой мы доверяем, это “текущее состояние цепи”. Существует неявный уговор соглашаться с ней. Каждый, кто попытается сообщить о “поддельной” цепи, никогда не увидит свои транзакции переданными или включенными в блок. По сути, всем аккаунтам, желающим провести транзакцию, можно доверять публиковать честное мнение о текущей цепи.
Краткосрочный консенсус против Долгосрочного консенсуса
Надеюсь, вы уже убедились, что со временем достаточное количество долей напрямую подтвердит блокчейн и достаточное количество доверенных аккаунтов будут записывать в цепь, что существует авторитетное доказательство консенсуса квалифицированного большинства. Как много времени займет это однозначно прямое подтверждение зависит от среднего уровня активности держателей долей. Если средний пользователь будет проявлять активность один раз в день, то достижение 50% прямого консенсуса займет 24 часа. Если же он будет активен только раз в месяц, то это может отнять 30 дней.
Конечно, весьма желательно получать транзакции, подтвержденные с уверенностью 99.99%, за гораздо более короткое время. Нет нужды собирать голоса 50% держателей, чтобы знать, что Вы соберете их, когда понадобится. Даже небольшая выборка активности вашей сети доверия способна обеспечить высокую степень уверенности.
Подавляющее большинство пользователей не подтверждают состояние напрямую, но делают это, ссылаясь на доверенный способ коммуникации вне цепи. Это означает, что даже кратковременного отслеживания ваших доверенных пиров(trusted peers) достаточно, чтобы узнать в какой Вы цепи. Если атакующий злоумышленник изолирует Вас для встраивания в поддельную цепь, то Ваши транзакции перестанут быть действительны в настоящей цепи. Это означает, что получение транзакций должно подтверждаться доверенными пирами. Тогда, чтобы попытаться совершить подмену цепи, злоумышленнику нужно будет ввести в заблуждение всю сеть Ваших доверенных пиров.
Доверенные пиры против Доверенной экономики
Биткойн работает на предположении, что не существует такого понятия, как доверенный пир. Вместо этого, каждая нода получает информацию от всех пиров и приходит к заключению о том, на какой цепи основан консенсус, исходя только из математических расчетов. Эти расчеты могут “доказать” только то, что кто-то потратил много денег на электричество, чтобы решить сложную математическую проблему. Это и есть доказательство выполнения работы (proof of work). Нода, настроенная иначе, например, без отсылки к информации извне, способна оценить рыночную стоимость, связанную с производством блока. Блокчейн с высокой рыночной стоимостью наверняка обладает и наибольшим сетевым эффектом.
Любая попытка совершения мошенничества путем производства плохого блока должна производить прибыль большую, чем само вознаграждение за блок. В случае с Биткойном, попытка встроить в цепь один и тот же блок дважды с одним подтверждением должна привлечь к злоумышленнику $10 000 или даже больше.
На первый взгляд кажется, что большинство транзакций будут приносить столь малую прибыль с попыток повторного проведения, что намеренно дублировать блокчейн бессмысленно. Рациональные участники экономики расположены таким образом, что ожидание в течение шести или более подтверждений дает математическую уверенность в необратимости.
В этом доверии к экономике есть одна гигантская дыра. Каждый, кто намерен получать прибыль от цензурирования транзакций, всего лишь теряет комиссию за транзакции. Это также предполагает, что все участники рынка имеют одинаковые экономические стимулы, а именно, продажу произведенных ими койнов с получением прибыли. Некоторые участники рынка учитывают прибыли из других источников и обобществляют свои расходы. Правительства могут позволить себе майнить в убыток, тогда как майнеры свободного рынка должны извлекать прибыль. Вообще-то, налогов, которые правительство сможет собрать с людей, зарабатывающих на Биткойне, может хватить на оплату объема хеш-мощностей, достаточного для цензуры сети.
Когда вы полагаетесь на доверенных пиров, правительству становится гораздо сложнее доминировать. Весь свободный рынок - это не что иное, как P2P (peer-to-peer) обмен товарами, услугами и информацией. Если вы не можете обеспечить безопасный обмен информацией, то не сможете и действовать в мире, где можно обмениваться товарами и услугами. Хорошо перелинкованная социальная сеть способна легко обеспечить безопасные каналы коммуникации для доверенных пиров. Любой, кто не синхронизирован с социальной сетью, будет быстро идентифицирован и исключен из бизнес-транзакций.
Производство блоков и Цензура
Пока все обладают способностью подтверждать блоки, блоки и транзакции в них содержащиеся должны производиться и обрабатываться в определенном порядке. Когда дело касается производства блоков, крайне важно, чтобы они включали в себя все легитимные транзакции без применения цензуры. Эта способность блокчейна противостоять цензуре - важнейший компонент в достижении желаемого уровня безопасности.
Существует два типа цензуры:
- Универсальная - когда блокируются все транзакции
- Направленная - когда блокируются только отдельные транзакции
Универсальная цензура
Все, что требуется для универсальной цензуры - остановить работу сети. В случае с локализованной цензурой сеть продолжает работать, и только некоторые пользователи испытывают её эффект. Стоит пояснить, что универсальную цензуру легче всего применить, атакуя публичный P2P протокол. Всё потому, что P2P протокол позволяет видеть все узлы, и можно просто сгенерировать список IP, которые нужно заблокировать. Как только будет произведена атака на P2P протокол, пользователи блокчейна будут вынуждены создать теневую сеть “доверенных пиров”, что полностью противоречит аргументам за Доказательство Выполнения Работы (Proof of Work).
Как вариант, правительство может просто отключить питание стольким майнерам, скольким сможет, захватить как можно больше оборудования и майнить пустые блоки. Еще оно может переполнить блокчейн транзакциями и вытеснить всех остальных. Все эти атаки прибыльны и стоят копейки для всех правительств, которые способны потратить миллионы долларов, чтобы убить муху из пушки.
Направленная цензура
В случае направленной цензуры злоумышленник должен воздействовать на алгоритм консенсуса, чтобы позволить прохождение одних транзакций, блокируя при этом другие. Чтобы этого достичь, злоумышленнику нужно прямо или косвенно контролировать производство блоков.
В случае применения доказательства работы - как в Биткойне - это означает, что правительство способно публично субсидировать тех производителей блоков, которые производят их согласно с правительственным направлением цензуры. Как только 51% производителей блоков будет подкуплен, правительство сможет обновить направление, чтобы заставить их игнорировать произведенные блоки, которые из этого направления выбиваются.
Изначальные субсидии для производителей должны быть довольно высоки, но как только будет достигнут 51%, и неподходящие производители блоков будут выдавлены из бизнеса, субсидии могут быть снижены. Каждый, кто отступился от установившегося порядка после того, как 100% производителей блоков перейдут эту черту, будет игнорироваться. Потребуется договоренность 51% майнеров, чтобы заставить правительство сохранить субсидии.
Другими словами, существует ловушка, где майнеры, имеющие финансовый стимул присоединиться к атаке, после ее успешного завершения имеют финансовое препятствие к выходу из консенсуса этой атаки.
В случае применения Делегированного Доказательства Владения Долей, такого как Steem, нужно подкупить 75% избранных witness-майнеров, чтобы заблокировать не только некоторые финансовые транзакции, но и попытки проголосовать за других witness-майнеров. Чтобы добиться успеха, правительству потребуется выйти на личный контакт с этими witness-майнерами и достичь 51% большинства тайно, а также верить, что все они не отрекутся от этого захвата.
Как только захват станет публичным, меньшинство оставшихся witness-майнеров будет вынуждено выбирать: присоединиться к большинству, либо же начать сопротивление посредством форка. Если они решат сделать форк, то уровень производства блоков в правительственной цепи снизится до 75%, тогда как цепь меньшинства будет на уровне 25%. Тогда массе пользователей придется решать, присоединятся ли они к цепи сопротивления или останутся на правительственной. Если они присоединятся к цепи сопротивления, то смогут удалить свои голоса за подкупленных witness-майнеров и избрать новых. Вскоре цепь сопротивления вернется к 100% участию, быстро встанет на ноги и перевесит правительство, работающее всего на 75%.
Правительственный захват провалится не только из-за системы голосования за witness-майнеров, но также и исходя из прямого голосования пользователей. В отличии от медленного публичного захвата производства блоков (как в Доказательстве Выполнения Работы), потребуется скрытый захват с последующей быстрой реализацией с явным свидетельством в виде отклонения транзакций, которые голосуют за альтернативных witness-майнеров.
В отличии от примера с Биткойном, для нового форка будет обычным делом достигнуть прямого консенсуса большинства держателей долей, за пару дней взять верх над захватчиком и обеспечить дальнейшее спокойное существование сообщества.
Делегированное доказательство владения долей
Комбинация Делегированного Доказательства Владения Долей (DPOS) и Транзакции в качестве Доказательства Доли (TaPoS) означает, что блокчейн способен достичь быстрого делегированного консенсуса всего за пару секунд и затем подтвердить делегированный консенсус прямым консенсусом за часы или, в крайнем случае, дни.
DPOS и TaPoS по-максимуму используют отношения внутри сети доверия (web-of-trust), чтобы создать прочную, самовосстанавливающуюся сеть, которая способна твердо доказать единодушное согласие с помощью прямых подписей всех пользователей.
Так как консенсус не зависит ни от какого капиталоемкого процесса, обычным подходом движения сопротивления является адаптация к каждому отдельному компоненту атаки. Система Доказательства Выполнения Работы уязвима в том же месте, в каком eGold и все остальные цифровые валюты с золотым резервом: они зависят от легко определяемых физических активов. Чтобы быть успешным, алгоритм долгосрочного консенсуса должен быть легким, быстрым и почти незаметным, дабы иметь возможность избегать медленной тяжелой руки правительства. Правительства полагаются на брутфорс (метод «грубой силы»), а достигнутый таким образом консенсус играет им на руку, и это именно то, что делает Доказательство Выполнения Работы.
Заключение
Прежде чем утверждать, что Доказательство Выполнения Работы - это золотой стандарт для децентрализованного консенсуса, думаю, лучше пересмотреть саму цель (единогласное прямое согласие всех сторон) и сопротивляться цензуре. Если иметь конечной целью достижение нецензурируемого, неизменяемого и доказываемого консенсуса, становится ясно, что на самом деле настоящим золотым стандартом является сочетание DPOS + TaPoS, по которому можно судить все остальные алгоритмы.
Оригинальный пост и его обсуждение ЗДЕСЬ
Данный пост опубликован в рамках бета тестирования проекта RuSteemitBlog
Перевод осуществлен: @mayamarinero
Критика, комментарии и предложения приветствуются.