Proof-of-Stake без искуственных добавок, часть 1

Proof-of-Stake без искуственных добавок, часть 1

Ilya Evdokimov

Данная статья будет достаточно трудной для понимания новичка, но я постарался приложить раздел с терминами. Более опытный читатель может его пропустить.

Термины:

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

Proof-of-Work -- механизм обработки транзакций и генерации блоков в блокчейне, при котором майнер "крутит рулетку", пытаясь отыскать хэш удовлетворяющий правилу, например, "один ноль в первом символе". Для первого абзаца первого раздела для этого понадобилось добавить число 3000 и перебрать от 1000 четыре хэша (включая хэш без числа). Результат POW нельзя предсказать для хорошей хэш-функции, можно только найти удовлетворяющий условию хэш, и это условие является частью POW.

Proof-of-Stake -- метод улучшения компьютерных алгоритмов консенсуса. Например, задача: у нас в сети несколько компьютеров и все они должны по очереди генерировать случайное число и приходить к единому мнению в течение миллисекунд. Для того, чтобы её решить в общем случае на плохой сети, с плохими компьютерами, нам надо использовать какие либо алгоритмы вроде Paxos, Raft, Practical Byzantine Fault Tolerant, это т.н. алгоритмы консенсуса. Усложняя задачу, и помещая в сеть блокчейн, нам надо быть уверенными, что ни один из участников сети не выдал себя за кого-то другого, и тогда мы присваиваем каждому участнику свою криптографическую подпись, а чтобы ему было что терять -- говорим положить в страховой депозит сколько-нибудь токенов, которые в случае, если он врёт, переаспределяются между остальными участниками.

Преимущества POS

Баннер ниже сопровождает вводную часть, которая должна была бы помочь нам составить представление о том, какие достоинства несёт нам POS. На самом деле, его единственная практическая цель -- избежать недостатков Proof-of-Work (POW). В разное время к ним причисляли те или иные качества, которые сложились органически, и к настоящему времени уже не важны. Важно отметить, что как правило под POW мы часто имеем ввиду механизм функционирования Bitcoin, связанный с консенсусом сети при выборе нового блока, т.е. проще говоря, при обработке транзакций и помещении их в блокчейн во веки веков.

Алекс Херн, скорее всего, nocoiner

Консенсус POW к настоящему времени имеет практически доказанную безопасность, он работает практически во всех главных криптовалютах Bitcoin, Ethereum, Litecoin и иногда (декларируется) частично -- в других. POS мог бы иметь достоинства по сравнению с POW, если бы он практически доказал большую безопасность, либо помог обеспечить большую степень децентрализации протокола и его устойчивость к возможной цензуре (здесь мы говорим о децентрализации как майнинга так и узлов сети, сохранающих реплику блокчейна локально) и как следствие придать конкурентные преимущества своим криптовалютам. Практически, степень безопасности и децентрализации, декларируемая или может быть достигнутая, вряд ли повлияла на стоимость криптовалют Proof-of-Stake (картинка ниже), несмотря на то, что Proof-of-Stake был предложен в 2012 году (King, S. & Nadal, S. Ppcoin: Peer-to-peer crypto-currency with proof-of-stake).

Доля Proof-of-Stake в общем рынке. Могут быть и другие криптовалюты из области N\A

Так как вывести достинства POS по сравнению с POW оказалось достаточно сложно, его преимущества стали декларировать через недостатки POW и Биткоина, как основную цель, обладающую максимально развитым майнингом. Ранее, достаточно популярными были мнения о том, что сеть Биткоина слишком "китаизирована" как в смысле майнинга, так и в смысле использования, однако, сначала "сдулись" китайские биржи после отмены margin-trading, затем китайские майнеры начали выходить в близлежащие страны с более надёжной юрисдикцией и в наше время инвестиционные проекты по организации ферм уже имеют место в Квебеке. Конечно, этим занимаются крупные компании, но вспомним, что в конце XIX века нефть в Баку носили вёдрами и хранили в ямах, а в наше время никто так не делает.

Ещё одним интересным мифом была гипотетическая атака 50+1%, которая потеряла всякий экономический смысл для атакующего с появлением первого ASIC (на самом деле раньше, но точную границу нужно считать). Постепенно, китайский и 50+1% нарративы стали сдавать позицию экологическому, который также не имеет ничего общего с реальностью, потому что POW Bitcoin является самобалансирующимся механизмом и суть увеличения прожорливости такая же как у рождественских гирлянд на многочисленных европейских ярмарках. Люди хотят заработать, ставят больше ферм или развешивают больше гирлянд, только в первом случае связь прямая, поэтому фермы стоят рядом с источниками дешёвой энергии, чего не скажешь про гирлянды. Источник повышенного энергопотребления POW -- это сам человек, его предпринимательская активность.

В конечном итоге, экологический нарратив победил и при сравнении алгоритмов консенсуса (хотя это не профессионально, по-моему мнению). Например в недавней TON Whitepaper употребляется словосочетание "бесполезные хэши". В материале о TON я упомянул необходимость в экстернализации стоимости атаки (то, почему 50+1% атака бессмысленна), это требует пояснения, потому что это одно из фундаментально слабых мест любого POS алгоритма.

"Ничего за душой"

Название раздела является вольным переводом "nothing-at-stake", атаки, которой пытаются избежать все производные алгоритмы POS. Она хорошо описана Andrew Poelstra в работе "A Treatise on Altcoins", и здесь я по-видимому не буду сосредотачиваться на технических деталях этой фундаментальной уязвимости POS, но предложу несколько иной взгляд, обобщающий "nothing-at-stake" с точки зрения экономических последствий, и одновременно предприму попытку более наглядной иллюстрации атаки, как её понимает Poelstra. Сложная техническая трактовка данного типа атак заключается в том, что, как правило POS, декларируя отсутствие необходимости генерации большого количества "бесполезных хэшей", позволяют создавать альтернативные блоки без существенных затрат вычислительных ресурсов. Сложный технический ответ на данный тип атак, вроде Slasher В. Бутерина, заключается в ряде методов, связанных: а) с блокированием на время токенов "майнера" или в случае POS -- узла-валидатора сети, б) обещанием изъять залог в пользу других учасников сети в случае отклонений от правил протокола. Фактически, например ответ Бутерина не имеет ничего общего с замечаниями Poelstra, потому что они шире и затрагивают особенности генерации блоков, например, что в тот или иной момент времени выбор следующего "валидатора" перестаёт быть случайным, просто потому что они должны генерировать блоки равномерно из соображений "справедливости", и таким образом можно из атакующего меньшинства сети превратиться в большинство, просто умело используя момент времени. До настоящего времени, Бутерин использует такую аналогию для объяснения инноваций POS: 100 человек за одним столом подписывают друг за другом бумажку, а обманет кто -- его дом сгорит. Стол и горящий дом -- это воображаемо ярко, но не имеет отношения к тому, что говорил Poelstra: порядок валидаторов детерминирован.

На более общем уровне я смотрю на "nothing-at-stake", так: если для атаки на сеть токен является только промежуточным активом, то сам факт атаки становится вопросом времени, и чем дороже токен, тем выше вероятность атаки. То же самое могло бы быть справедливо и для Bitcoin, если бы он был основан на POS, но, чтобы иметь высокий шанс фальсифицировать несколько блоков подряд, а затем обналичить полученную прибыль нужны огромные средства, и часть из них не связана с покупкой токена: во-первых нужно купить необходимое оборудование, во-вторых нужно обладать большим количеством BTC (и здесь Биткоин является наиболее равномерно распределённой валютой), чтобы реализовать преимущества атакующего и получить прибыль от продажи, в третьих я не представляю такой атаки, которая позволила бы одновременно обналичить большой запас Биткоинов и не превратить приобретённое оборудование, ASIC-майнеры, в никому не нужный хлам. Мы видим, что стоимость атаки POW Bitcoin запретительно высока, а если вы решите атаковать Биткоин, то вы скорее всего станете самым радикальным ходлером. При этом в POS криптовалюте диапазон возможных сценариев для атакующего значительно шире и не упирается в какие-либо фундаментальные ошибки протокола или невообразимую стоимость атаки. Атакующий может быть ранним инвестором у него будет большой запас криптовалюты, во-вторых, атакующий может получить криптовалюту в результате другой атаки, на крупного держателя (коих в POS системах достаточно много), в третьих, атакующий может завладеть сервером-валидатором и его страховым депозитом.

Но рассмотрим его действия в протоколе, если он обладает промежуточным средством атаки, которое не имеет конечной реальной стоимости для атакующего.

  1. Атакующий каким-либо образом получает запас токенов (украдены с биржи, украдены у валидатора или крупного держателя, куплены)
  2. Запас токенов делится в той мере, в которой это необходимо для получения, например 1\6 голосов валидаторов в сети
  3. Токены на бирже просто могут ждать своего часа
  4. Подготавливается и совершается атака внутри сети (например совокупностью методов, описанных Poelstra), которая может быть направлена на что угодно: двойную трату, доп.эмиссию, или просто в целях повреждения сети, чтобы манипулировать рынком.
  5. На бирже (или в частной сделке) извлекается прибыль путём, известным атакующему.

Важно отметить, что чем выше цена, тем более выгодной становится атака на POS, потому что повышение цены может покрыть расходы на атаку. Атакующий действительно жертвует страховым депозитом, но это является только расходной частью. Искушённый читатель может возразить, что такая же схема возможна в POW, может быть POW Bitcoin, если атакующий берёт некое оборудование в аренду. Но он ошибётся, потому что в пределе POW упирается в принцип Ландауэра (генерация тепла, энтропии, при обработке единицы информации), а в реальной жизни атака на развитый POW упирается в то, что: атакующему придётся оплатить альтернативные издержки многим майнерам, эти фермы будут рассредоточены в пространстве (мультипликатор к издержкам), майнеры будут очень не заинтересованы в существовании атакующего при малейшей утечке информации (а атакующему потребуется договариваться с большим количеством контрагентов).

Ответ Ethereum

Coindesk отметило, что для разработки Casper (POS консенсус для ETH), не установлен дедлайн. Бутерин:

Я предпочитаю не определять сроки

Отметим, что всё сообщество в целом, когда имеет в виду POS, ориентируется на Ethereum. Этому может быть ряд объяснений, но самое главное по-видимому то, что для Ethereum цена вопроса будет высока, а может быть сравнима с DAO Hack по эффекту на коммьюнити и экономику протокола.Просматривая материалы POS на GitHub, можно увидеть раздел, посвящённый исключительно "nothing-at-stake", который включает упомянутый Slasher, который наказывает валидаторов за одновременное создание двух блоков на одной высоте. Учитывая, что описываемый Slasher первым требованием имеет "чётко определённый список валидаторов", этот механизм имеет описанное Poelstra слабое место: гриндинг валидаторов (то есть, когда с уменьшением валидаторов, которые должны подписать блок, фактор "случайного" выбора пропадает). Мне не понятна способность данного механизма объективно отфильтровать атакующего от всех остальных.

Помимо Slasher, вторая стратегия заключается в наказании атакующего за наращивание "ложной цепочки". При этом, любопытна такая цитата:

Интуитивно, это соответствует тому, что мы можем реплицировать экономику POW внутри POS

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

По всей видимости, все ответы на вопрос фундаментальной атаки "nothing-at-stake" будут вестись в рамках изобретения "криптоэкономики", то есть системы экономических стимулов внутри протокола. Например, как в этой незаконченной (или не начатой) статьи, посвящённой Casper:

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

Заключение первой части

Статья оказалась длинее, чем было запланировано изначально и, не смотря на это, множество аспектов Proof-of-Stake осталось не разобранными: экономическая модель, вопросы безопасности и стимулов валидаторов, децентрализация сети. Они будут рассмотрены в следующей статье.

Важно отметить, что обсуждая "nothing-at-stake", мы пытаемся решить задачу форка блокчейна. Если мы оглянемся назад, то поймём, что обсуждение проблемы POS, отбрасывает всё сообщество на десять лет назад, потому что задача достижения децентрализованного распределённого консенсуса и отсутствия "двойной траты" в цифровой валюте была успешно решена С. Накамото.






Report Page